讀古今文學網 > 父與子的編程之旅:與小卡特一起學Python > 3.3 運算順序 >

3.3 運算順序

下面哪一個正確?

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(和所有其他編程語言)都會遵循正確的數學規則和運算順序。