自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python之三元表達(dá)式嵌套三元表達(dá)式解析

開發(fā) 后端
Python的三元表達(dá)式相信學(xué)過python的朋友都會(huì)。但是大部分學(xué)python的朋友不知道的是三元表達(dá)式還可以嵌套三元表達(dá)式。

Python的三元表達(dá)式相信學(xué)過python的朋友都會(huì)。但是大部分學(xué)python的朋友不知道的是三元表達(dá)式還可以嵌套三元表達(dá)式。

請(qǐng)看代碼案例:

  1. cmp = lambda a, b: 0 if a == b else 1 if a > b else -1 
  2. print(cmp(3,2)) 
  3. print(cmp(2,3)) 
  4. print(cmp(2,2)) 
  5. out:1 
  6. -1 

以上代碼的功能是對(duì)兩個(gè)數(shù)進(jìn)行比較,若第一個(gè)數(shù)等于第二個(gè)數(shù)返回0;若第一個(gè)數(shù)大于第二個(gè)數(shù)返回1;若第一個(gè)數(shù)小于第二個(gè)數(shù)返回-1。

直接看是不是比較懵?我把它拆分一下,換一種寫法,會(huì)容易懂得多。

  1. def cmp2(a, b): 
  2.     if a == b: 
  3.         return 0 
  4.     else
  5.         if a > b: 
  6.             return 1 
  7.         else
  8.             return -1 
  9. print(cmp2(3, 2)) 
  10. print(cmp2(2, 3)) 
  11. print(cmp2(2, 2)) 
  12. out:1 
  13. -1 

可以看到上述2個(gè)函數(shù)功能完全一致,第一種寫法簡(jiǎn)潔的多!

再來熟悉一下這種寫法,為了便于理解我多加了對(duì)括號(hào):

  1. 0 if a == b else (1 if a > b else -1) 

這種語句是三元表達(dá)式嵌套三元表達(dá)式的結(jié)構(gòu),從左向右計(jì)算。

三元表達(dá)式首先找if,找到if判斷a ==b (判斷元素):

  • 若該條件滿足則返回if左邊的0(結(jié)果元素1)作為整個(gè)表達(dá)式的運(yùn)算結(jié)果。
  • 若該判斷條件不滿足則返回判斷條件右邊的三元表達(dá)式(結(jié)果元素2)。

右邊仍然是三元表達(dá)式,繼續(xù)計(jì)算該三元表達(dá)式,找到if判斷a>b(判斷元素):

  • 若該條件滿足則返回if左邊的1(結(jié)果元素1)作為整個(gè)表達(dá)式的運(yùn)算結(jié)果。
  • 若該判斷條件不滿足則返回判斷條件右邊的-1(結(jié)果元素2)作為整個(gè)表達(dá)式的運(yùn)算結(jié)果。

python的三元表達(dá)式非常靈活,從上述案例中可以學(xué)習(xí)到三元表達(dá)式的結(jié)果元素可以是三元表達(dá)式,也就是說三元表達(dá)式可以嵌套三元表達(dá)式使用。

三元表達(dá)式嵌套三元表達(dá)式的結(jié)構(gòu)并不難懂,熟練掌握以后會(huì)讓你的代碼更簡(jiǎn)潔,用三元表達(dá)式嵌套三元表達(dá)式感覺比用if else if else瞬間高大上了很多,嘻嘻。

 

責(zé)任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2023-11-30 08:30:12

Python三元表達(dá)

2018-10-08 08:00:00

前端ReactJavaScript

2023-09-06 09:40:29

2023-09-07 08:05:32

三元表達(dá)式自動(dòng)

2014-01-05 17:41:09

PostgreSQL表達(dá)式

2024-02-02 12:41:33

表達(dá)式語法Cron

2010-03-03 12:53:50

Linux正則表達(dá)式

2024-03-25 13:46:12

C#Lambda編程

2010-07-14 09:37:46

Perl正則表達(dá)式

2011-06-16 15:28:31

正則表達(dá)式

2024-09-14 09:18:14

Python正則表達(dá)式

2010-07-28 11:06:41

Flex正則表達(dá)式

2010-08-09 13:58:59

Flex正則表達(dá)式

2010-07-13 17:03:53

Perl正則表達(dá)式

2021-01-27 11:34:19

Python正則表達(dá)式字符串

2018-09-27 15:25:08

正則表達(dá)式前端

2010-03-25 18:25:36

Python正則表達(dá)式

2020-09-04 09:16:04

Python正則表達(dá)式虛擬機(jī)

2009-09-09 17:45:07

Linq表達(dá)式

2009-09-11 09:48:27

Linq Lambda
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)