日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

冰与火之歌:Python的三元表达式

發布時間:2024/3/12 python 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 冰与火之歌:Python的三元表达式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我不知道為什么,Python這么優雅的語言居然不支持三元運算符,也就意味著無法像C語言一樣直接使用conditon?a:b來返回a或b。我感覺我對Python的喜愛受到了挑戰。我不喜歡這種感覺。經過上網搜索和自行實驗,我終于找到了三元表達式的替代方法。
方法一:a if condition else b 如果condition為True,返回a;否則,返回b。 例如,下面的例子根據條件輸出'冰'或者'火' >>> '冰' if 3 > 2 else '火''冰'>>> '冰' if 3 < 2 else '火''火'>>>
方法二:利用and or短路運算的特點 and運算時,例如a and b,如果a為False就不再判斷b的值。or運算時,例如a or b,如果a為True就不再判斷b的值。 假設表達式為:condition and a or b。如果condition為True,會接著判斷a,如果a等同True,就返回a的值。如果a等同False,就計算b,返回b的值。如果你覺得有點繞,直接看下面的例子。 eg.下面的例子根據條件輸出不同的字符: >>> 3 > 2 and '冰' or '火''冰'>>> 3 < 2 and '血' or '沙''沙'
但這種方法有個坑,如果a為"",即空串,對它作真假值判斷時會返回False,與我們的假設不符。 例如,下面我們希望3>2時輸出一個空串,然而卻事與愿違。 >>> 3 > 2 and '' or '火''火'>>> 我們想要一個空串,然而卻造成火災。
這種方法看起來挺優雅,看在它優雅的份上,能不能補救一下呢? 當然,機制的網友找到了修補的方法,那就是把a和b用列表包起來。因為即使包含空串元素的列表,其表達式依然等同True。 eg.上面的例子包裹后變成下面這幅德行: >>> (3 > 2 and [''] or ['火'])[0]'' 可以看到,這種方法是多么地丑陋。構造了兩個列表不說,最后還得依賴下標運算把想要的值取出來。

所以推薦使用第一種方法。比較好理解,也沒有坑。

最后,請原諒我做了一回標題黨。畢竟生活本無趣,我只想加入點色彩。

總結

以上是生活随笔為你收集整理的冰与火之歌:Python的三元表达式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。