下面哪一個正確?
2 + 3 * 4 = 20
還是
2 + 3 * 4 = 14
這要看你採用什麼順序來計算。如果先做加法,會得到
2 + 3 = 5,
然後得到
5 * 4 = 20
如果先做乘法,就會得到
3 * 4 = 12,
然後是
2 + 12 = 14
第二個順序是正確的,所以正確答案是 14。在數學中有一種運算順序(order of operation),指定了先計算哪些操作符,後計算哪些操作符,而不管它們的書寫順序如何。
在我們的這個例子中,儘管 + 號在 * 號前面,但是應當先算乘法。Python 會遵循正確的數學規則,所以它會先做乘法再做加法。可以在交互模式中試試看,看看能不能得到這個結果:
>>> print 2 + 3 * 414
Python 使用的順序與你在數學課上學到的(或者將要學到的)規則完全相同。指數運算最優先,然後是乘除,再後面是加減運算。
如果希望改變運算順序,先完成某個運算,只需要在它兩邊加上括號(圓括號),比如:
>>> print (2 + 3) * 420
這一次,Python 會先做 2 + 3(因為有括號),可以得到 5,然後再做乘法 5 * 4,得到 20。
再強調一次,這與數學課上講的是一樣的。Python(和所有其他編程語言)都會遵循正確的數學規則和運算順序。