Python://运算符

Python://运算符,python,python-2.7,Python,Python 2.7,我不熟悉python或一般编程。请描述为什么这两个结果的陈述之间存在差异 >>> print 100//18 5 >>> print ((10**2)//9*2) 22 因为乘法和除法具有相同的优先级,并且是左关联的。所以100//9*2意味着(100//9)*2,而不是100//(9*2)。这在数学上是一个相当普遍的约定,并不特定于Python。(事实上,您使用的是10**2而不是100在这里是无关紧要的。)如果您使用100//(9*2)您将再次获得5。其

我不熟悉python或一般编程。请描述为什么这两个结果的陈述之间存在差异

>>> print 100//18
5
>>> print ((10**2)//9*2)
22

因为乘法和除法具有相同的优先级,并且是左关联的。所以
100//9*2
意味着
(100//9)*2
,而不是
100//(9*2)
。这在数学上是一个相当普遍的约定,并不特定于Python。(事实上,您使用的是
10**2
而不是
100
在这里是无关紧要的。)如果您使用
100//(9*2)
您将再次获得5。

其楼层划分@Nullman括号的计算结果与第一条语句中的数字相同。那么为什么会有不同呢?正如布兰巴恩在他的回答中所说,除法和乘法有着相同的先例,我用循环来打印一个数字三角形。这就是我使用((10**I)//9*I)的原因。谢谢你的回答,很清楚。