TypeError: integer argument expected got float' Python 3.4
TypeError: integer argument expected got float' Python 3.4
我得到一个整数错误,应该是一个浮点数,所以我改变了它,然后得到相反的结果,说一个浮点数不能是一个整数。我之前遇到过类似的问题,只是将其更改为具有 int.
我正在通过 python27 中的教程进行学习,但大部分时间都是通过故障排除让他们在 python34 中工作。这个我卡住了。
TypeError:整数参数应为浮点数'
for tile in return_tiles:
pygame.draw.circle(screen, [34, 95, 200],
[tile.x + half - 2, tile.y + half - 2], 5 )
然后我做了下面的更改,它通常会像这个下面的那样工作,但在这种情况下会出错
TypeError: 'float' 对象不能解释为整数
for tile in return_tiles:
pygame.draw.circle(screen, (34, 95, 200), (int(tile.x + half -2),int(half - 2, tile.y + half - 2)), int(5))
我如何修复下面的另一个整数的示例,但在上面的例子中它不起作用
pygame.draw.circle(screen, (34, 95, 200), (int(tile.x + half -2),int(half - 2, tile.y + half - 2)), int(5))
我一直在通过在线学习教程自学,但大多数都是针对 python 的早期版本 2.7 等。但这在大多数情况下都不是问题。我一直在使用错误消息,并且在大多数情况下我可以弄清楚,如果不是有时我 运行 2to3.py 或搜索以找到答案。
我怀疑你的罪魁祸首是 half
变量,因为它涉及一个 分区 ,在 Python 2 中它会给你一个 int
,但是在 Python 3 中除法将给出 float
除非你使用整数除法运算符 //
如果您使用的是 Python 2 个教程,他们不必处理这些问题
Python 3
>>> 5 // 3
1
>>> 5 / 3
1.6666666666666667
所以我会去寻找计算 half
的位置,然后用 half = int(...)
强制转换为 int
或使用 //
在 pygame 中,使用 float
表示像素尺寸不是很有用,所以只需将所有内容保留在 int
中,尤其是当您像 half
那样进行除法时,如果两个操作数都是 int
,则 tile.x + half
等其他算术将产生 int
,因此无需强制转换
我得到一个整数错误,应该是一个浮点数,所以我改变了它,然后得到相反的结果,说一个浮点数不能是一个整数。我之前遇到过类似的问题,只是将其更改为具有 int.
我正在通过 python27 中的教程进行学习,但大部分时间都是通过故障排除让他们在 python34 中工作。这个我卡住了。
TypeError:整数参数应为浮点数'
for tile in return_tiles:
pygame.draw.circle(screen, [34, 95, 200],
[tile.x + half - 2, tile.y + half - 2], 5 )
然后我做了下面的更改,它通常会像这个下面的那样工作,但在这种情况下会出错
TypeError: 'float' 对象不能解释为整数
for tile in return_tiles:
pygame.draw.circle(screen, (34, 95, 200), (int(tile.x + half -2),int(half - 2, tile.y + half - 2)), int(5))
我如何修复下面的另一个整数的示例,但在上面的例子中它不起作用
pygame.draw.circle(screen, (34, 95, 200), (int(tile.x + half -2),int(half - 2, tile.y + half - 2)), int(5))
我一直在通过在线学习教程自学,但大多数都是针对 python 的早期版本 2.7 等。但这在大多数情况下都不是问题。我一直在使用错误消息,并且在大多数情况下我可以弄清楚,如果不是有时我 运行 2to3.py 或搜索以找到答案。
我怀疑你的罪魁祸首是 half
变量,因为它涉及一个 分区 ,在 Python 2 中它会给你一个 int
,但是在 Python 3 中除法将给出 float
除非你使用整数除法运算符 //
如果您使用的是 Python 2 个教程,他们不必处理这些问题
Python 3
>>> 5 // 3
1
>>> 5 / 3
1.6666666666666667
所以我会去寻找计算 half
的位置,然后用 half = int(...)
强制转换为 int
或使用 //
在 pygame 中,使用 float
表示像素尺寸不是很有用,所以只需将所有内容保留在 int
中,尤其是当您像 half
那样进行除法时,如果两个操作数都是 int
,则 tile.x + half
等其他算术将产生 int
,因此无需强制转换