TypeError:第15行Pow:'list'和'int'的不受支持的操作数类型

问题描述:

我想要做的就是让我的循环使用距离公式每秒钟移动龟。但是,每次尝试使用公式时都会出现此错误。有谁知道我要去哪里?TypeError:第15行Pow:'list'和'int'的不受支持的操作数类型

  1. 进口龟
  2. WN = turtle.Screen()
  3. 托尼= turtle.Turtle()
  4. tony.shape( “龟”)
  5. tony.pensize(5)
  6. tony.up()
  7. tony.left(90)
  8. tony.forward(100)
  9. tony.l EFT(180)

10.tony.down()

11.gravity =浮子(10.3)

  1. 对于i在[1,2, 3,4,5,6,7,8,9,10]:
  2. tony.stamp()
  3. 时间=范围(1,10,1)
  4. 距离=浮子((重力/ 2) *((时间** 2) - ((时间-1)** 2)))
  5. tony.forward(distance)
开始=>

range函数返回一个列表。您将此列表存储在time中,然后尝试将其用作time ** 2(时间平方)的基数。也许你想设定时间的值为i

+0

此评论对A TON有帮助!我得到它的工作,并真正明白我做错了什么。非常感谢你的帮助! – Cakers

您的变量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。我会留给你找出解决方案,使用上述工具。