Python 为什么0%5返回0?
我现在正在做一个乒乓球游戏,我希望球每5击就加速一次,但当我跑的时候,球就开始向起始方向加速 它在没有球加速的情况下运行良好,因此问题不是以前的代码 在尝试实现此功能时,我在Ball类中创建了一个名为Python 为什么0%5返回0?,python,Python,我现在正在做一个乒乓球游戏,我希望球每5击就加速一次,但当我跑的时候,球就开始向起始方向加速 它在没有球加速的情况下运行良好,因此问题不是以前的代码 在尝试实现此功能时,我在Ball类中创建了一个名为self.num\u hits的变量,并将其初始值设置为0。然后在我的游戏循环中,每次球碰撞时,我都会增加球。num_hits并反转其x_速度 collide_list = pygame.sprite.spritecollide(ball, players, False) if collide_li
self.num\u hits
的变量,并将其初始值设置为0。然后在我的游戏循环中,每次球碰撞时,我都会增加球。num_hits
并反转其x_速度
collide_list = pygame.sprite.spritecollide(ball, players, False)
if collide_list != []:
ball.x_speed *= -1
hit.play()
ball.num_hits += 1
在Ball()类中:
但是这使得球的速度偏离了它的起始速度,所以我检查了self.num_hits%5返回的值,它总是返回0。我一直认为
0%number=number
,所以我的问题是为什么0%5返回0?如果我不能解决0%5的问题,有没有其他方法可以让球每5击就加速一次?为什么0%5会返回0
因为:
零除以五等于零,保持为零
0 % 5 = 0
12 % 5 = 2
%n与-(n*int(a/n))相同。0/5等于0,因为5等于0,0次。0*5等于0。0减0等于0。如果self.num\u命中/5==0,请尝试:数字\u 1%数字\u 2=>是数字\u 1除以数字\u 2的余数 在0%的任何数字情况下,它总是0。0%5=0
1%5=1
2%5=2
3%5=3
4%5=4
5%5=0
6%5=1
7%5=2
定义除法是为了确保以下内容始终正确 n=q×d+r 在哪里
- n是分子(或股息)
- d!=0是分母(或除数)
- q是商,和
- r>0是余数
n/d==q
和n%d==r
。如果n
为0,则q
也必须为0,在这种情况下r
也必须为0,且与d
的值无关
(离题,但请注意,这也抓住了除以0的问题:对于非零d,q和r是唯一确定的;对于d=0,q的任何值都将满足r=n的方程。我认为这是小学教的,但这有一个简单的答案。
%给你除法问题的剩余部分。如果你有(例如)
6%5
,你会得到1
,因为5一次变成6,而5*1==5
6-5==1
,这就是答案。这里是0%5
,5变成0(令人震惊)零次。5*0==0
,和0-0==0
。因此,因为0除以任何东西。我想,如果Y!=0,X%Y永远不会返回Y。0后面的余数除以5是0@squiguy:0只除以0。0可以被任何东西整除。@DietrichEpp是的,这就是我的意思。但这不会每5次点击执行一次。这会给我一个我已经遇到过的问题,因为self.num_hits==0会在比赛开始时不断返回True,使球的速度变慢
0 % 5 = 0
12 % 5 = 2