零基礎(chǔ)Python完全自學(xué)教程9:Python中運算符的優(yōu)先級和條件表達式
歡迎你來到站長學(xué)堂,學(xué)習(xí)站長在線出品的在線課程《零基礎(chǔ)Python完全自學(xué)教程》今日分享的是第9課《Python中運算符的優(yōu)先級和條件表達式》。本節(jié)課主要內(nèi)容有:Python中運算符的優(yōu)先級、Python的條件表達式。
永久美國免備案虛擬主機1元1天,15元1月,100元1年,1000元永久
站長在線旗下答案網(wǎng)站,全站所有題目,免費查看答案和答案解析
歡迎你來到站長學(xué)堂,學(xué)習(xí)站長在線出品的在線課程《零基礎(chǔ)python完全自學(xué)教程》今日分享的是第9課《Python中運算符的優(yōu)先級和條件表達式》。本節(jié)課主要內(nèi)容有:Python中運算符的優(yōu)先級、Python的條件表達式。
9.1、Python中運算符的優(yōu)先級
Python中的運算符的優(yōu)先級是指在一個表達式中存在多個運算符,先算哪一個后算哪一個。在數(shù)學(xué)中,我們是遵循“先乘除后加減”的四則運算法則。
Python也不例外,也有自己的運算規(guī)則。在Python中,優(yōu)先級高的先運算,優(yōu)先級低的后運算,同一級別的從左到右的順序進行。同時Python運算還有結(jié)合性,要考慮結(jié)合方向決定求職順序。接下來請看圖9.1 Python 運算符優(yōu)先級和結(jié)合性一覽表。
圖9.1 Python 運算符優(yōu)先級和結(jié)合性一覽表
根據(jù)上面圖標信息,我們來運算一個簡單的表達式:
4+4<<2
+的優(yōu)先級是 12,<<的優(yōu)先級是 11,+的優(yōu)先級高于<<,所以先執(zhí)行 4+4,得到結(jié)果 8,再執(zhí)行 8<<2,得到結(jié)果 32,這也是整個表達式的最終結(jié)果。
像這種不好確定優(yōu)先級的表達式,我們可以給子表達式加上( ),也就是寫成下面的樣子:
(4+4) << 2
這樣看起來就一目了然了,不容易引起誤解。
當(dāng)然,我們也可以使用( )
改變程序的執(zhí)行順序,比如:
4+(4<<2)
則先執(zhí)行 4<<2,得到結(jié)果 16,再執(zhí)行 4+16,得到結(jié)果20。
雖然 Python 運算符存在優(yōu)先級的關(guān)系,但我不推薦過度依賴運算符的優(yōu)先級,這會導(dǎo)致程序的可讀性降低。因此,我建議讀者:
1、不要把一個表達式寫得過于復(fù)雜,如果一個表達式過于復(fù)雜,可以嘗試把它拆分來書寫。
2、不要過多地依賴運算符的優(yōu)先級來控制表達式的執(zhí)行順序,這樣可讀性太差,應(yīng)盡量使用( )來控制表達式的執(zhí)行順序。
最后再來談?wù)?span >Python 運算符結(jié)合性
所謂結(jié)合性,就是當(dāng)一個表達式中出現(xiàn)多個優(yōu)先級相同的運算符時,先執(zhí)行哪個運算符:先執(zhí)行左邊的叫左結(jié)合性,先執(zhí)行右邊的叫右結(jié)合性。
例如對于表達式對于100 / 25 * 16,/和*的優(yōu)先級相同,應(yīng)該先執(zhí)行哪一個呢?這個時候就不能只依賴運算符優(yōu)先級決定了,還要參考運算符的結(jié)合性。/和*都具有左結(jié)合性,因此先執(zhí)行左邊的除法,再執(zhí)行右邊的乘法,最終結(jié)果是 64。
Python 中大部分運算符都具有左結(jié)合性,也就是從左到右執(zhí)行;只有 ** 乘方運算符、單目運算符(例如 not 邏輯非運算符)、賦值運算符和三目運算符例外,它們具有右結(jié)合性,也就是從右向左執(zhí)行。
圖9.1 Python 運算符優(yōu)先級和結(jié)合性一覽表中列出了所有的 Python 運算符的結(jié)合性。
當(dāng)一個表達式中出現(xiàn)多個運算符時,Python 會先比較各個運算符的優(yōu)先級,按照優(yōu)先級從高到低的順序依次執(zhí)行;當(dāng)遇到優(yōu)先級相同的運算符時,再根據(jù)結(jié)合性決定先執(zhí)行哪個運算符:如果是左結(jié)合性就先執(zhí)行左邊的運算符,如果是右結(jié)合性就先執(zhí)行右邊的運算符。
9.2、Python中的條件表達式
在Python開發(fā)程序的時候,經(jīng)常會根據(jù)表達式的結(jié)果有條件的賦值。如:要返回兩個數(shù)中較大的數(shù),可以使用下面的if語句:
a = 10
b = 6
if a>b:
r = a
else:
r = b
print(r)
上述代碼可以使用條件表達式進行簡化,代碼如下:
a = 10
b = 6
r = a if a>b else b
print(r)
使用條件表達式時,先計算中間件(a>b),如果結(jié)果為True,則返回if語句左邊的值,否則返回else右邊的值。上面結(jié)果為10。
實例9.2、使用條件表達式判斷是否為閏年。
我們新建一個叫做runnian.py的文件,然后再該文件中定義一個保存要判斷的年份的 變量,然后判斷該年份是否為閏年,最后輸出判斷結(jié)果,代碼如下:
year = 2021 # 年份
result = "是閏年" if (year%4==0 and year % 100 !=0) or (year%100 == 0) else "不是閏年"
print("\n"+str(year) + "年" + result + "!") # 輸出結(jié)果
運行上面代碼,顯示結(jié)果如下:
2021年不是閏年!
>>>
站長在線提醒大家:判斷一個年份是否為閏年的條件是,可以可以被4整除,但 不能被100整除,或者可以被400整除。
附:
1582年以來的置閏規(guī)則:
普通閏年:公歷年份是4的倍數(shù),且不是100的倍數(shù)的,為閏年(如2004年、2020年等就是閏年)。
世紀閏年:公歷年份是整百數(shù)的,必須是400的倍數(shù)才是閏年(如1900年不是閏年,2000年是閏年)。
下節(jié)預(yù)告:零基礎(chǔ)Python完全自學(xué)教程10:Python中的程序結(jié)構(gòu)
9.1、下面說法中正確的是( )
A、小括號“()”是運算符的優(yōu)先級中的最高級別。
B、優(yōu)先級高的先運算,優(yōu)先級低的后運算,同一級別的從左到右的順序進行。
C、有乘方的運算也是從左到右開始計算。
D、在編寫程序時,盡量使用小括號()來限定運算次序。
上期答案:上期無題目
相關(guān)閱讀:
文末福利:
1、關(guān)注站長在線官方公眾號【站長在線】微信號:olzzcom ,文末也有公眾號二維碼,關(guān)注公眾號以后回復(fù)python,本站精心整理的Python書籍、軟件、工具都實時更新哦!本站所安裝的python3.10、IDLE中文版 、PyCharm、Visual Studio Code、Sublime Text4等都在里面哦!
2、站長在線官方微信交流群已經(jīng)開通了,微信掃碼進入,一起交流,一起進步!
本文地址:http://003188.cn/pythonysyxjhtjbds.html
阿里云虛擬主機1G空間,120元一年
香港、美國虛擬主機100元一年,1000元永久
騰訊云雙十一0.4折起,2核8G5M三年僅700元,2核4G8M三年僅198元
猜你喜歡