網(wǎng)站首頁 編程語言 正文
三元運算符也稱為條件表達式,是根據(jù)條件為真或假來評估某些內(nèi)容的運算符。它在2.5 版本中被添加到 Python 中。?
它只是允許在單行中測試條件,替換多行 if-else,使代碼緊湊。
語法 :
[on_true] if [expression] else [on_false]?
使用三元運算符的簡單方法
# 演示條件運算符的程序
a, b = 10, 20
# 如果 a < b 則復制 a 的最小值,否則復制 b
min = a if a < b else b
print(min)
輸出:?
10
使用元組、字典和 lambda 的直接方法
# 演示三元運算符的 Python 程序
a, b = 10, 20
# 使用元組選擇一個項目 (if_test_false,if_test_true)[test] 如果 [a<b] 為真則返回 1,因此索引為 1 的元素將打印,否則如果 [a<b] 為假則返回 0,因此元素為 0 索引將打印
print( (b, a) [a < b] )
# 如果 [a < b] 為真,則使用 Dictionary 選擇項目,然后打印 True 鍵的值,否則,如果 [a<b] 為假,則打印 False 鍵的值
print({True: a, False: b} [a < b])
# lambda 比上述兩種方法更有效,因為在 lambda 中,我們確保只評估一個表達式,這與 tuple 和 Dictionary 不同
print((lambda: b, lambda: a)[a < b]())
輸出:
10?
10?
10
時間復雜度:O(1)
輔助空間:O(1)
三元運算符可以寫成嵌套的 if-else
# 演示嵌套三元運算符的 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")
時間復雜度:O(1)
輔助空間:O(1)
上面的方法可以寫成:
# 演示嵌套三元運算符的 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
時間復雜度:O(1)
輔助空間:O(1)
在三元運算符中使用打印功能
例如:
示例:在 python3 中使用三元運算符查找 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
時間復雜度:O(1)
輔助空間:O(1)
要點
- 首先評估給定條件 (a < b),然后根據(jù)條件返回的布爾值返回 a 或 b
- 運算符中參數(shù)的順序與其他語言(如 C/C++)不同。
- 在所有 Python 操作中,條件表達式的優(yōu)先級最低。
****當三元運算符不存在?時,在 2.5 之前使用的方法在如下給出的表達式中,解釋器檢查表達式是否為真,然后評估 on_true,否則評估 on_false。
語法 :?
條件為真時,不執(zhí)行表達式[on_false],返回“True and [on_true]”的值。 返回“False or [on_false]”的其他值。 請注意,“真和 x”等于 x。 “假或 x”等于 x。
[expression] and [on_true] or [on_false]?
例子 :
# 演示條件運算符的程序
a, b = 10, 20
# 如果 a 小于 b,則分配 a,否則分配 b(注意:如果 a 為 0,則它不起作用。)
min = a < b and a or b
print(min)
輸出:
10
時間復雜度: ?O(1)
輔助空間: ?O(1)
注意: 此方法的唯一缺點是on_true 不能為零或 False。如果發(fā)生這種情況,將始終評估 on_false。原因是如果表達式為真,解釋器將檢查 on_true,如果它為零或假,這將迫使解釋器檢查 on_false 以給出整個表達式的最終結(jié)果。
原文鏈接:https://juejin.cn/post/7140840640325091342
相關(guān)推薦
- 2022-01-06 npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to
- 2022-05-19 C++inline函數(shù)的特性你了解嗎_C 語言
- 2022-11-18 redis批量操作pipeline管道操作方法_Redis
- 2022-07-16 from server (NotFound): pods “XXX“ not found
- 2022-10-01 windows?server?2016?搭建FTP服務器詳細教程_FTP服務器
- 2022-06-06 一文搞懂Redis中String數(shù)據(jù)類型_Redis
- 2022-04-12 iOS SDK中引入第三方頭文件報Undefined symbols for architectur
- 2023-01-15 OB系統(tǒng)變量Variables及ODC管理會話功能詳解_相關(guān)技巧
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支