IDLE:
>>> n = 4
>>> m = 1
>>> n//2*m//2
1
>>> n//2
2
>>> m//2
0
任何人都可以解释这里发生了什么!?
答案 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