TypeError: range() integer end argument expected, got float?
TypeError: range() integer end argument expected, got float?
我知道以前有人问过这个问题,但答案对我没有帮助:/
我创建了一个函数,它在输入的平方最大值上运行一个 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...所以我错过了什么?
谢谢:)
正如评论中其他人所说,问题主要是因为范围函数中的浮点值。因为 range 函数不接受 float 类型作为参数。
for i in range(max(int(X), int(Y))**2):
我知道以前有人问过这个问题,但答案对我没有帮助:/
我创建了一个函数,它在输入的平方最大值上运行一个 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...所以我错过了什么?
谢谢:)
正如评论中其他人所说,问题主要是因为范围函数中的浮点值。因为 range 函数不接受 float 类型作为参数。
for i in range(max(int(X), int(Y))**2):