十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
Python的三元表達(dá)式相信學(xué)過python的朋友都會。但是大部分學(xué)python的朋友不知道的是三元表達(dá)式還可以嵌套三元表達(dá)式。

博州網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,博州網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為博州上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的博州做網(wǎng)站的公司定做!
請看代碼案例:
- cmp = lambda a, b: 0 if a == b else 1 if a > b else -1
- print(cmp(3,2))
- print(cmp(2,3))
- print(cmp(2,2))
- out:1
- -1
- 0
以上代碼的功能是對兩個數(shù)進(jìn)行比較,若第一個數(shù)等于第二個數(shù)返回0;若第一個數(shù)大于第二個數(shù)返回1;若第一個數(shù)小于第二個數(shù)返回-1。
直接看是不是比較懵?我把它拆分一下,換一種寫法,會容易懂得多。
- def cmp2(a, b):
- if a == b:
- return 0
- else:
- if a > b:
- return 1
- else:
- return -1
- print(cmp2(3, 2))
- print(cmp2(2, 3))
- print(cmp2(2, 2))
- out:1
- -1
- 0
可以看到上述2個函數(shù)功能完全一致,第一種寫法簡潔的多!
再來熟悉一下這種寫法,為了便于理解我多加了對括號:
- 0 if a == b else (1 if a > b else -1)
這種語句是三元表達(dá)式嵌套三元表達(dá)式的結(jié)構(gòu),從左向右計算。
三元表達(dá)式首先找if,找到if判斷a ==b (判斷元素):
右邊仍然是三元表達(dá)式,繼續(xù)計算該三元表達(dá)式,找到if判斷a>b(判斷元素):
python的三元表達(dá)式非常靈活,從上述案例中可以學(xué)習(xí)到三元表達(dá)式的結(jié)果元素可以是三元表達(dá)式,也就是說三元表達(dá)式可以嵌套三元表達(dá)式使用。
三元表達(dá)式嵌套三元表達(dá)式的結(jié)構(gòu)并不難懂,熟練掌握以后會讓你的代碼更簡潔,用三元表達(dá)式嵌套三元表達(dá)式感覺比用if else if else瞬間高大上了很多,嘻嘻。