2017-05-27 378 views
-3

我是一般的Python或編程人員。請說明爲什麼這兩個結果的陳述之間存在差異。Python://運算符

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

它的地板部門。 https://www.tutorialspoint.com/python/python_basic_operators.htm – Nullman

+0

@Nullman括號的計算結果與第一條語句中的數字相同。那麼爲什麼有一個區別 –

+0

就像BranBarn在他的回答中所說的,除法和乘法具有相同的優先順序 – Nullman

回答

1

因爲乘法和除法具有相同的優先級並且是左關聯的。所以100//9*2意味着(100//9)*2,而不是100//(9*2)。這在數學中是一個非常普遍的約定,並不是Python特有的。 (事實上​​,你使用10**2而不是100在這裏是不重要的。)如果你做100//(9*2)你會再次得到5.

+0

我正在使用for循環打印一個數字三角形。這就是爲什麼我使用((10 ** i)// 9 * i)。謝謝你的回答,很明顯。 –