我乘以0而不是0!蟒蛇

时间:2017-05-05 14:56:05

标签: python python-3.x

IDLE:

>>> n = 4
>>> m = 1
>>> n//2*m//2
1
>>> n//2
2
>>> m//2
0

任何人都可以解释这里发生了什么!?

2 个答案:

答案 0 :(得分:6)

操作顺序。乘法和除法从左到右;它首先不进行所有除法,然后进行乘法运算。所以你的表达式扩展如下:

n//2*m//2 = ((n//2)*m)//2 = ((4//2)*1)//2= (2*1)//2 = 2//2 = 1

如果您想要n//2并将其乘以m//2,则必须将其括起来:

>>> n=4
>>> m=1
>>> (n//2)*(m//2)
#=> 0

答案 1 :(得分:0)

在python中,乘法和除法具有相同的权重,因此从左到右计算。因此,这就是Python读取等式的方法:

((4//2)*1)//2) = ((2)*1)//2) = ((2)//2) = 1