TypeError:range()期望整数结束参数,浮点数?

Che*_*075 8 python floating-point

我知道之前有人问过,但答案对我没有帮助:/

我创建了一个函数,它在输出的平方最大值上运行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
Run Code Online (Sandbox Code Playgroud)

印花螺旋(3.0,3.0)

我收到这个错误: TypeError: range() integer end argument expected, got float.

但是当我尝试打印功能时我放了3.0 ...所以我错过了什么?

谢谢 :)

Avi*_*Raj 7

像其他人在评论中所说,问题主要是因为范围函数中的浮点值.因为range函数不接受float类型作为参数.

for i in range(max(int(X), int(Y))**2):
Run Code Online (Sandbox Code Playgroud)