你能告诉我多少钱(-2) % 5?根据我的Python解释器是3,但你有一个明智的解释吗?
我读过在某些语言中,结果可能与机器有关,但我不确定.
Python中的模数令人困惑.
在Python中,%运算符正在计算余数:
>>> 9 % 5
4
Run Code Online (Sandbox Code Playgroud)
然而:
>>> -9 % 5
1
Run Code Online (Sandbox Code Playgroud)
为什么结果1?不是-4吗?
我正在进行一场乒乓球比赛,我希望球能够每5次点击一次加速,但是当我跑出球时,他的起跑方向开始加速.
它运行良好,没有加速球,所以问题不是以前的代码.
当我试图实现这个时,我在我的Ball类中调用了一个变量,self.num_hits最初使它成为0.然后在我的游戏循环中每次碰撞时,我都会增加ball.num_hits并反转它的x_speed.
collide_list = pygame.sprite.spritecollide(ball, players, False)
if collide_list != []:
ball.x_speed *= -1
hit.play()
ball.num_hits += 1
Run Code Online (Sandbox Code Playgroud)
在Ball()类中:
if self.num_hits % 5 == 0:
if self.x_speed > 0:
self.x_speed += 2
else:
self.x_speed -= 2
Run Code Online (Sandbox Code Playgroud)
但是这使得球的速度以其起始速度关闭,所以我检查了self.num_hits % 5返回的内容,它总是返回0.我一直认为0 % number = number,所以我的问题是为什么0%5会返回0?如果我不能解决0%5的问题,还有其他方法可以让球每5次点击一次加速吗?