久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

你知道Python學習中and-or的使用技巧嗎?

今天馬哥教育要跟大家分享的文章是Python學習中and-or的使用技巧,and 和 or 是Python的兩個邏輯運算符,可以使用and 和or來進行多個條件內容的判斷,Python入門新手和正在Python學習的小伙伴快來看一看吧,希望能夠對大家有所幫助 !

看下面這段代碼:

a = "heaven"

b = "hell"

c = True and a or b

print c

d = False and a or b

print d

輸出:

heaven

hell

結果很奇怪是不是?

表達式從左往右運算,1和"heaven"做and的結果是"heaven",再與"hell"做or的結果是"heaven";0和"heaven"做and的結果是0,再與"hell"做or的結果是"hell"。

拋開繞人的and和or的邏輯,你只需記住,在一個bool and a or b語句中,當bool條件為真時,結果是a;當bool條件為假時,結果是b。

有學過c/c++的同學應該會發(fā)現,這和bool?a:b表達式很像。

有了它,原本需要一個if-else語句表述的邏輯:

if a > 0:

print "big"

else:

print "small"

就可以直接寫成:

print (a > 0) and "big" or "small"

然而不幸的是,如果直接這么用,有一天你會踩到坑的。和c語言中的?:表達式不同,這里的and、or語句是利用了Python中的邏輯運算實現的。當a本身是個假值(如0,"")時,結果就不會像你期望的那樣。

比如:

a = ""

b = "hell"

c = True and a or b

print c

得到的結果不是""而是"hell"。因為""和"hell"做and的結果是"hell"。

所以,and-or真正的技巧在于,確保a的值不會為假。最常用的方式是使 a 成為 [a] 、 b 成為 [b],然后使用返回值列表的第一個元素:

a = ""

b = "hell"

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

print c

由于[a]是一個非空列表,所以它決不會為假。即使a是0或者''或者其它假值,列表[a]也為真,因為它有一個元素。

在兩個常量值進行選擇時,and-or會讓你的代碼更簡單。但如果你覺得這個技巧帶來的副作用已經讓你頭大了,沒關系,用if-else可以做相同的事情。不過在Python的某些情況下,你可能沒法使用if語句,比如lambda函數中,這時候你可能就需要and-or的幫助了。

什么是lambda函數?呵呵,這是Python的高階玩法,你去了解一下吧!

恭喜你在Python的道路上又堅持了一天,以上就是馬哥教育今天為大家分享的關于Python學習中and-or使用技巧的文章,希望本篇文章能夠對正在 Python學習?和從事Python相關工作的小伙伴們有所幫助,想要了解更多相關知識記得關注馬哥教育官網。最后祝愿小伙伴們工作順利!

聲明:文章來源于網絡,如有侵權請聯系刪除!

相關新聞

歷經多年發(fā)展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發(fā)專業(yè)人才培訓機構!

    1. 主站蜘蛛池模板: 秭归县| 华安县| 息烽县| 顺平县| 中宁县| 济源市| 淮安市| 靖安县| 盐津县| 江孜县| 工布江达县| 松潘县| 濮阳市| 靖安县| 女性| 沽源县| 电白县| 郸城县| 苏尼特右旗| 广昌县| 桐梓县| 广丰县| 邮箱| 肥西县| 江油市| 通化市| 焦作市| 临武县| 蕲春县| 遂溪县| 陆丰市| 获嘉县| 临邑县| 萍乡市| 安吉县| 延寿县| 成安县| 兴宁市| 米泉市| 芜湖市| 桃源县|