joh*_*lor 2 python pygame python-2to3 python-3.x
我得到一个预期浮点数的整数错误,所以我改变它然后反过来说浮点数不能是一个整数.之前我遇到过类似的问题,只是把它改成了int.
我正在通过python27中的教程学习,但大多数情况下通过故障排除让它们在python34中工作.这个我被困住了.
TypeError:整数参数expect go float'
for tile in return_tiles:
pygame.draw.circle(screen, [34, 95, 200],
[tile.x + half - 2, tile.y + half - 2], 5 )
Run Code Online (Sandbox Code Playgroud)
所以我接着在下面进行了更改,它通常会像下一个那样工作,但在这种情况下会出错
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))
Run Code Online (Sandbox Code Playgroud)
我如何修复下面的另一个例子是一个整数,但在上面的情况下它不起作用
pygame.draw.circle(screen, (34, 95, 200), (int(tile.x + half -2),int(half - 2, tile.y + half - 2)), int(5))
Run Code Online (Sandbox Code Playgroud)
我一直通过在线学习教程来教自己,但大多数是python的早期版本2.7等.但这在很大程度上并不是一个问题.我一直在使用错误消息,大多数情况下我可以弄清楚,如果有时我没有运行2to3.py或搜索找到答案.
我怀疑你的罪魁祸首是half变量,因为它涉及一个除法,在Python 2中它会给你一个int,但是在Python 3中,float除非你使用int除法运算符,否则除法//
如果您使用的是Python 2教程,则无需处理
Python 3
>>> 5 // 3
1
>>> 5 / 3
1.6666666666666667
Run Code Online (Sandbox Code Playgroud)
所以我会去寻找half计算的地方,并强制int使用half = int(...)或使用//
在pygame中,使用float像素尺寸并不是很有用,所以只要保留所有内容int,特别是当你进行分割时half,如果两个操作数都是s,那么剩下的算术tile.x + half会产生一个,所以没有必要强迫intint
| 归档时间: |
|
| 查看次数: |
5691 次 |
| 最近记录: |