2015-02-06 36 views
5

我知道這已被問過,但答案並沒有幫助我:/TypeError:range()整數結束參數預計,獲得浮動?

我創建了一個函數運行一個for循環輸入的平方最大值,並通過所有帳戶我的代碼是正確的.. 。但它仍然要求浮動輸入。

def spiral(X, Y): 

x = y = 0 
dx = 0 
dy = 0 
count = 0 

for i in range(max(X, Y)**2): 
    if (-X/2.0 < x <= X/20) and (-Y/2.0 < y <= Y/2.0): 
     print (x, y) 

    if x == y or (x < 0 and x == -y) or (x > 0 and x == 1-y): 
     dx, dy = -dy, dx 

    x, y = x+dx, y+dy 

打印螺旋(3.0,3.0)

而且我得到這個錯誤:TypeError: range() integer end argument expected, got float.

但我把3.0當我嘗試打印功能...所以我缺少什麼?

謝謝:)

+0

你正在爲'X'和'Y'的值傳入float,而不是傳入整數。 – 101 2015-02-06 02:49:11

+0

這就是我所說的函數:print spiral(3.0,3.0) – Chef1075 2015-02-06 02:50:12

+1

@ Chef1075 - 的確如此。 '3.0'的類型是'float',而不是'int'。 :-)。 – mgilson 2015-02-06 02:50:35

回答

5

與其他人一樣說,在評論,問題是在範圍函數的浮點值,主要是因爲。因爲範圍函數不會接受float類型作爲參數。

for i in range(max(int(X), int(Y))**2): 
相關問題