gpt4 book ai didi

python - 类型错误 : integer argument expected, 得到 float

转载 作者:行者123 更新时间:2023-12-01 06:05:05 27 4
gpt4 key购买 nike

这是我第一次在 Stack Overflow 上提问,因此,如果我的问题太模糊或没有提供足够的信息,我提前表示歉意。

基本上,我遇到的问题是我的代码由于类型错误而无法运行。

以下是确切的消息:

Traceback (most recent call last):
File "C:\Program Files (x86)\Wing IDE 101 4.0\src\debug\tserver\_sandbox.py", line 61, in <module>
File "C:\pygamehelper.py", line 62, in mainLoop
File "C:\Program Files (x86)\Wing IDE 101 4.0\src\debug\tserver\_sandbox.py", line 54, in draw
TypeError: integer argument expected, got float

所以我认为错误的发生是由于与 pos 相关的元组使用 vec2d 方法转换为向量,然后作为参数(作为 float )传递给第 54 行中的 draw.circle 方法,其中需要一个 int 。然而,这就是我正在遵循的教程中完成的方法,并且他的代码是相同的并且执行时没有问题。

这可能是因为他使用了不同版本的Python或PyGame,还是我的代码有问题?

预先感谢您的帮助。

from pygamehelper import *
from pygame import *
from pygame.locals import *
from vec2d import *
from math import e, pi, cos, sin, sqrt
from random import uniform

class Agents:
def __init__(self):
self.pos = vec2d(0, 0)
self.target = vec2d(0, 0)

class Starter(PygameHelper):
def __init__(self):
self.w, self.h = 800, 600
PygameHelper.__init__(self, size=(self.w, self.h), fill=((255,255,255)))

self.agents = []

for i in range(10):
a = Agents()
a.pos = vec2d(uniform(0, self.w), uniform(0, self.h))
a.target = vec2d(uniform(0, self.w), uniform(0, self.h))
self.agents.append(a)

def update(self):

for a in self.agents:

dir = a.target - a.pos
dir.length = 5
a.pos = a.pos + dir

def keyUp(self, key):
pass

def mouseUp(self, button, pos):

for a in self.agents:
a.target = vec2d(pos)

def mouseMotion(self, buttons, pos, rel):
pass

def draw(self):

# clear the screen 40 times / sec so that only 1 char and target
# present on screen at a time
self.screen.fill((255,255,255))


for a in self.agents:
# character
pygame.draw.circle(self.screen, (200, 200, 255), a.pos, 10)
# black character outline
pygame.draw.circle(self.screen, (0, 0, 0), a.pos, 11, 1)
# target
pygame.draw.circle(self.screen, (200, 0, 0), a.target, 20, 1)

s = Starter()
s.mainLoop(40)

最佳答案

random.uniform(a,b) 返回一个 float 。使用 int(random.uniform(a,b)) 作为整数。

关于python - 类型错误 : integer argument expected, 得到 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8467018/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com