在求解分数时,余数如何用模数计算?

时间:2014-01-25 00:38:21

标签: python python-3.x

如您所见,除以3/7会产生一个分数。但当我做3%7时它会产生3.这怎么可能?我想我期望输出值为4(因为它需要4才能完成7)或0,(因为如果使用整数除法,例如3 // 7,则根本没有余数。)

>>> 3/7
0.42857142857142855
>>> 3%7
3
>>> 

试图了解Python的深度。谢谢!

4 个答案:

答案 0 :(得分:4)

记得长师吗?在您了解分数之前,50 divided by 7将为7, remainder 1remainder是模数。它是整数除法后剩余的1/7的分子。

答案 1 :(得分:3)

让我们使用不同的数字进行演示。

42除以5得出商为8,余数为2.这意味着42 // 5 == 842 % 5 == 2

3除以7得出商为0且余数为3.这意味着3 // 7 == 03 % 7 == 3

在Python中,//%代表你在学习分数和实数之前可能学到的商和余数。唯一(可能)的差异是//层和%匹配右侧操作数的符号。

答案 2 :(得分:0)

modulo返回整数(floor)除法后的整数。

>>>3//7
0 # with remainder 3
>>>3%7
3
>>>2//5
2 # with remainder 1
>>>2%5
1

答案 3 :(得分:-1)

重新阅读你的问题,我发现你的条款混乱了,这可能是我们没有人正确回答的根本混乱。

  

但是当我做3%7时它会产生3.这怎么可能?我想我预计输出值为4(因为它需要4才能完成7)

首先,当你说4时,问题被掩盖了。由于4大于3,3可以减去第二时间,留下1.所以1是{的输出{1}}。

但是您询问了7 % 3,即使您接着解释了3 % 77 % 3小于1(因为7> 3)。所以 是模数仍为3的原因。整数除法给出0,所以剩下3。

使用整数除法将第一项(3)除以第二项(7)(得到0)。从第一个词(3)中减去该数字,得到3.所以:3 % 7