Python中如何使用三元運算子?

PHPz
發布: 2023-05-08 15:28:16
轉載
1484 人瀏覽過

詳解Python中的三元運算

什麼是三元運算子

在大部分程式語言中都有三目運算,也稱三元運算,Python語言從Python2. 5版開始也引進了三元運算子。

在Python中,三元運算也稱為條件表達式,語法如下:

true_expression if condition else false_expression
condition是判斷條件,true_expression 和false_expression 是兩個表達式,用if…else… 連結。
如果 condition 成立(結果為真),就執行 true_expression,並把 true_expression 的結果當作整個表達式的結果。
如果 condition 不成立(結果為假),就執行 false_expression,並把 false_expression 的結果當作整個表達式的結果。

Python中的三元運算子是用 if 和 else 連接,不像Java等語言中是用問號和冒號連接。

例如:

num1 = int(input('请输入第一个数字:'))
num2 = int(input('请输入第二个数字:'))
# 三元运算
max_num = num1 if num1 >= num2 else num2
print(f'最大值是:{max_num}')
登入後複製

Output:

请输入第一个数字:15646
请输入第二个数字:464665
最大值是:464665
登入後複製

上面的範例中,如果num1 大於或等於num2,則max_num 等於num1,否則max_num 等於num2,透過三元運算符求出了兩個數字中的最大值。

三元運算語句與條件語句的區別

1.三元運算語句

numa = 100
numb = 10
max_num = numa if numa >= numb else numb
print(f'最大值是:{max_num}')
登入後複製

2.條件語句

numa = 100
numb = 10
if numa >= numb:
    max_num = numa
else:
    max_num = numb
print(f'最大值是:{max_num}')
登入後複製

從上面的對比,三元運算語句和條件語句實現的函數完全一樣,但三元運算語句只需要一行程式碼,而條件語句有四行程式碼。三元運算語句程式碼少且可讀性較高,所以大部分情況下,可以說三元運算語句是條件語句的簡寫。

嵌套的三元運算表達式

num = int(input('请输入数字:'))
print('负数') if str(num)[0] == '-' else print('大于等于100') if num >= 100 else print('小于100的正数')
登入後複製

上面這行程式碼是一個嵌套的三元運算表達式,其中第一個else 後面的語句是一個完整的三元運算語句,被當作一個整體當作外層三元運算表達式中的false_expression ,如下圖所示。

Python中如何使用三元運算子?

這個表達式相當於下面的條件判斷程式碼:

num = int(input('请输入数字:'))
if str(num)[0] == '-':
    print('负数')
else:
    if num >= 100:
        print('大于等于100')
    else:
        print('小于100的正数')
登入後複製

還可以繼續用相同的方法嵌套更多層,但個人建議不要寫太多嵌套,否則程式碼可讀性不增反降,適得其反。

三元運算表達式與列表推導式組合

s = [i if i % 2 == 0 else 10*i for i in range(10)]
print(s)
登入後複製

Output:

[0, 10, 2, 30, 4, 50, 6, 70, 8, 90]
登入後複製

當然,還可以舉一反三地將三元運算表達式與字典推導式和集合推導式等組合使用,更多推導式可以參考:Python列表推導式

三元運算表達式的優點

Python中的三元運算表達式主要有兩個優點:

1.可以用單行的三元運算表達式取代簡單的條件語句,減少程式碼行數。

2.簡單的三元運算表達式可以提高程式碼的可讀性,使程式碼更Pythonic,更優雅。

以上是Python中如何使用三元運算子?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板