提问者:小点点

类型错误:范围()整数结束参数预期,得到浮动?


我知道以前有人问过这个问题,但答案对我没有帮助:/

我创建了一个函数,在输入的平方最大值上运行一个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()应该是整数结束参数,得到float

但当我尝试打印函数时,我使用了3.0。。。那么我错过了什么?

谢谢:)


共1个答案

匿名用户

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

for i in range(max(int(X), int(Y))**2):