如您所见,除以3/7会产生一个分数。但当我做3%7时它会产生3.这怎么可能?我想我期望输出值为4(因为它需要4才能完成7)或0,(因为如果使用整数除法,例如3 // 7,则根本没有余数。)
>>> 3/7
0.42857142857142855
>>> 3%7
3
>>>
试图了解Python的深度。谢谢!
答案 0 :(得分:4)
50 divided by 7
将为7, remainder 1
。 remainder
是模数。它是整数除法后剩余的1/7
的分子。
答案 1 :(得分:3)
让我们使用不同的数字进行演示。
42除以5得出商为8,余数为2.这意味着42 // 5 == 8
和42 % 5 == 2
。
3除以7得出商为0且余数为3.这意味着3 // 7 == 0
和3 % 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 % 7
。 7 % 3
小于1(因为7> 3)。所以 是模数仍为3的原因。整数除法给出0,所以剩下3。
使用整数除法将第一项(3)除以第二项(7)(得到0)。从第一个词(3)中减去该数字,得到3.所以:3 % 7