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

歡迎訪問 生活随笔!

生活随笔

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

python

python 三元运算符求abc_python三元运算符实现方法

發布時間:2024/4/19 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 三元运算符求abc_python三元运算符实现方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這是今天在溫習lambda表達式的時候想到的問題,眾所周知C系列語言中的 三元運算符(?:)是一個非常好用的語句,

關于C中的三元運算符

表達式1?表達式2:表達式3

那么在python應該如何實現呢,請看下面例子:

答案是:X = (表達式1)and 表達式2(真值返回)or 表達式3(假值返回)

舉個例子:

復制代碼 代碼如下:

def main():

y = 5

x = (y > 5) and 2 or 4

print x

pass

這段代碼的是意思的輸出是4,可以把表達式的條件改為(y<=5)這時候輸出就是2

為什么能得到這樣的結果:

0、''、[]、()、{}、None在布爾上下文中為假;其它任何東西都為真。

在Python中,and和or執行布爾邏輯演算,但是它們并不返回布爾值;而是,返回它們實際進行比較的值之一。

如果布爾上下文中的所有值都為真,那么and返回最后一個值。上下文中的某個值為假,則and返回第一個假值。

如果有一個值為真,or立刻返回該值。如果所有的值都為假,or返回最后一個假值

基于上述的背景,你應該還能理解這個表達式的含義了吧。

“注:“里面應該是這個用法的一些缺陷,如果表達式2或3是幾個定義的假值(0、''、[]、()、{}、None)之一,就會影響判斷了,我的建議是吧這些假值都用字符串的形式表現,并且將“”特殊處理為“”。后續再做判斷

再次見識到Python的強大,如果您有什么見解歡迎評論。

后記:

最近看了一些文章,有位大神對這個問題對這個缺陷給了一個完美的解決方案

X=(表達式1)and[表達式2(真值返)]or[表達式3(假值返回)](注:表達式2以及表達3不能為0、''、[]、()、{}、None)

對表達式2,3用中括號括起來,這樣兩者的值將永遠不會為假,這個解決方案的確不錯。

本文標題: python三元運算符實現方法

本文地址: http://www.cppcns.com/jiaoben/python/102803.html

總結

以上是生活随笔為你收集整理的python 三元运算符求abc_python三元运算符实现方法的全部內容,希望文章能夠幫你解決所遇到的問題。

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