Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么0%5返回0?_Python - Fatal编程技术网

Python 为什么0%5返回0?

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

我现在正在做一个乒乓球游戏,我希望球每5击就加速一次,但当我跑的时候,球就开始向起始方向加速

它在没有球加速的情况下运行良好,因此问题不是以前的代码

在尝试实现此功能时,我在Ball类中创建了一个名为
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为正值,否则为负值。r定义为始终为正值。)

在Python中,
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