TypeError:第15行Pow:'list'和'int'的不受支持的操作数类型
问题描述:
我想要做的就是让我的循环使用距离公式每秒钟移动龟。但是,每次尝试使用公式时都会出现此错误。有谁知道我要去哪里?TypeError:第15行Pow:'list'和'int'的不受支持的操作数类型
- 进口龟
- WN = turtle.Screen()
- 托尼= turtle.Turtle()
- tony.shape( “龟”)
- tony.pensize(5)
- tony.up()
- tony.left(90)
- tony.forward(100)
- tony.l EFT(180)
10.tony.down()
11.gravity =浮子(10.3)
- 对于i在[1,2, 3,4,5,6,7,8,9,10]:
- tony.stamp()
- 时间=范围(1,10,1)
- 距离=浮子((重力/ 2) *((时间** 2) - ((时间-1)** 2)))
- tony.forward(distance)
答
range
函数返回一个列表。您将此列表存储在time
中,然后尝试将其用作time ** 2
(时间平方)的基数。也许你想设定时间的值为i
?
答
您的变量time = range(1, 10, 1)
相当于time = [1, 2, 3, 4, 5, 6, 7, 8, 9]
,所以试图排列一个列表,因为在distance = float((gravity/2)*((time**2)-((time-1)**2)))
未定义。
如果你的目的是要在列表中每平方元素(即[1, 4, 9, 16, ...]
那么你想做什么正式的称呼是map。幸运的是,Python有一个builtin map。
f = lambda x: x**2
map(f, list)
上面我用了。拉姆达,这是一个内联函数,你可以只是(略少)易(稍微内嵌PEP8):
def f(x):
return x ** 2
map(f, list)
另外: 你也从你的列表中减去1。我会留给你找出解决方案,使用上述工具。
此评论对A TON有帮助!我得到它的工作,并真正明白我做错了什么。非常感谢你的帮助! – Cakers