Python中if-else語句的多種寫法


初學Python在看程序時發現python中if-else的多種寫法,故對其進行分析。

 

以下為網絡內容:

a, b, c = 1, 2, 3

1.常規

if a>b:

    c = a

else:

    c = b

2.表達式

c = a if a>b else b

3.二維列表

c = [b,a][a>b]

4.傳說是源自某個黑客

c = (a>b and [a] or [b])[0]

 

個人分析:

1、2為程序的基本語法不討論

3:首先a>b的取值為True或False,而在python中True的默認值為1False的默認值為0。

可得c = [b, a][1]或[b, a][0],即從列表中按下標索引的方式取值給c。

4:首先在Python中,對於邏輯運算符and 、or :

and: x and y 返回的結果是決定表達式結果的值。根據"短路"原則當x為真時決定表達式的真假由y的值決定,所有返回y;如果x為假則不進行y的判斷,返回x。

or: x or y 當x為真直接返回x的值;當x為假、y為真時返回y的值;當全為假時返回y的值。

所以當在式子中:

當 a>b為真:a>b and [a] 即為真,不在進行or的判斷,返回[a]

當 a>b為假:a>b and [a] 即為假,返回[b]

再對列表[a]或[b]進行按下標0進行取值,得到a或b。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM