2015-09-20 202 views
1

我想要做的就是讓我的循環使用距離公式每秒鐘移動龜。但是,每次嘗試使用公式時都會出現此錯誤。有誰知道我要去哪裏?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)

  • 對於i在[1,2, 3,4,5,6,7,8,9,10]:
  • tony.stamp()
  • 時間=範圍(1,10,1)
  • 距離=浮子((重力/ 2) *((時間** 2) - ((時間-1)** 2)))
  • tony.forward(distance)
  • 回答

    1

    range函數返回一個列表。您將此列表存儲在time中,然後嘗試將其用作time ** 2(時間平方)的基數。也許你想設定時間的值爲i

    +0

    此評論對A TON有幫助!我得到它的工作,並真正明白我做錯了什麼。非常感謝你的幫助! – Cakers

    0

    您的變量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。我會留給你找出解決方案,使用上述工具。

    相關問題