Python入門教程之三元運(yùn)算符的使用詳解
三元運(yùn)算符也稱為條件表達(dá)式,是根據(jù)條件為真或假來評(píng)估某些內(nèi)容的運(yùn)算符。它在2.5 版本中被添加到 Python 中。
它只是允許在單行中測(cè)試條件,替換多行 if-else,使代碼緊湊。
語法 :
[on_true] if [expression] else [on_false]
使用三元運(yùn)算符的簡單方法
# 演示條件運(yùn)算符的程序 a, b = 10, 20 # 如果 a < b 則復(fù)制 a 的最小值,否則復(fù)制 b min = a if a < b else b print(min)
輸出:
10
使用元組、字典和 lambda 的直接方法
# 演示三元運(yùn)算符的 Python 程序 a, b = 10, 20 # 使用元組選擇一個(gè)項(xiàng)目 (if_test_false,if_test_true)[test] 如果 [a<b] 為真則返回 1,因此索引為 1 的元素將打印,否則如果 [a<b] 為假則返回 0,因此元素為 0 索引將打印 print( (b, a) [a < b] ) # 如果 [a < b] 為真,則使用 Dictionary 選擇項(xiàng)目,然后打印 True 鍵的值,否則,如果 [a<b] 為假,則打印 False 鍵的值 print({True: a, False: b} [a < b]) # lambda 比上述兩種方法更有效,因?yàn)樵?lambda 中,我們確保只評(píng)估一個(gè)表達(dá)式,這與 tuple 和 Dictionary 不同 print((lambda: b, lambda: a)[a < b]())
輸出:
10
10
10
時(shí)間復(fù)雜度:O(1)
輔助空間:O(1)
三元運(yùn)算符可以寫成嵌套的 if-else
# 演示嵌套三元運(yùn)算符的 Python 程序 a, b = 10, 20 print ("Both a and b are equal" if a == b else "a is greater than b" if a > b else "b is greater than a")
時(shí)間復(fù)雜度:O(1)
輔助空間:O(1)
上面的方法可以寫成:
# 演示嵌套三元運(yùn)算符的 Python 程序 a, b = 10, 20 if a != b: if a > b: print("a is greater than b") else: print("b is greater than a") else: print("Both a and b are equal")
輸出:
b is greater than a
時(shí)間復(fù)雜度:O(1)
輔助空間:O(1)
在三元運(yùn)算符中使用打印功能
例如:
示例:在 python3 中使用三元運(yùn)算符查找 2 中的較大數(shù)
a=5 b=7 # [statement_on_True] if [condition] else [statement_on_false] print(a,"is greater") if (a>b) else print(b,"is Greater")
輸出:
7 is Greater
時(shí)間復(fù)雜度:O(1)
輔助空間:O(1)
要點(diǎn)
- 首先評(píng)估給定條件 (a < b),然后根據(jù)條件返回的布爾值返回 a 或 b
- 運(yùn)算符中參數(shù)的順序與其他語言(如 C/C++)不同。
- 在所有 Python 操作中,條件表達(dá)式的優(yōu)先級(jí)最低。
****當(dāng)三元運(yùn)算符不存在 時(shí),在 2.5 之前使用的方法在如下給出的表達(dá)式中,解釋器檢查表達(dá)式是否為真,然后評(píng)估 on_true,否則評(píng)估 on_false。
語法 :
條件為真時(shí),不執(zhí)行表達(dá)式[on_false],返回“True and [on_true]”的值。 返回“False or [on_false]”的其他值。 請(qǐng)注意,“真和 x”等于 x。 “假或 x”等于 x。
[expression] and [on_true] or [on_false]
例子 :
# 演示條件運(yùn)算符的程序 a, b = 10, 20 # 如果 a 小于 b,則分配 a,否則分配 b(注意:如果 a 為 0,則它不起作用。) min = a < b and a or b print(min)
輸出:
10
時(shí)間復(fù)雜度: O(1)
輔助空間: O(1)
注意: 此方法的唯一缺點(diǎn)是on_true 不能為零或 False。如果發(fā)生這種情況,將始終評(píng)估 on_false。原因是如果表達(dá)式為真,解釋器將檢查 on_true,如果它為零或假,這將迫使解釋器檢查 on_false 以給出整個(gè)表達(dá)式的最終結(jié)果。
到此這篇關(guān)于Python入門教程之三元運(yùn)算符的使用詳解的文章就介紹到這了,更多相關(guān)Python三元運(yùn)算符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Django后臺(tái)ManyToManyField顯示成Object的問題
今天小編就為大家分享一篇解決Django后臺(tái)ManyToManyField顯示成Object的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08解決python super()調(diào)用多重繼承函數(shù)的問題
今天小編就為大家分享一篇解決python super()調(diào)用多重繼承函數(shù)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06《Python學(xué)習(xí)手冊(cè)》學(xué)習(xí)總結(jié)
本篇文章是讀者朋友在學(xué)習(xí)了《Python學(xué)習(xí)手冊(cè)》這本書以后,總結(jié)出的學(xué)習(xí)心得,值得大家參考學(xué)習(xí)。2018-01-01python3.4用循環(huán)往mysql5.7中寫數(shù)據(jù)并輸出的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猵ython3.4用循環(huán)往mysql5.7中寫數(shù)據(jù)并輸出的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06python matplotlib坐標(biāo)軸設(shè)置的方法
本篇文章主要介紹了python matplotlib坐標(biāo)軸設(shè)置的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12詳解Python并發(fā)編程之從性能角度來初探并發(fā)編程
這篇文章主要介紹了詳解Python并發(fā)編程之從性能角度來初探并發(fā)編程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Django與pyecharts結(jié)合的實(shí)例代碼
這篇文章主要介紹了Django與pyecharts結(jié)合的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05python+selenium 鼠標(biāo)事件操作方法
今天小編就為大家分享一篇python+selenium 鼠標(biāo)事件操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08Python開源自動(dòng)化工具Playwright安裝及介紹使用
playwright-python是一個(gè)強(qiáng)大的Python庫,僅用一個(gè)API即可自動(dòng)執(zhí)行Chromium、Firefox、WebKit等主流瀏覽器自動(dòng)化操作,本文就詳細(xì)的介紹一下如何使用,感興趣的可以了解一下2021-12-12