Python三項演算子の実装方法

WBOY
リリース: 2016-06-16 08:45:58
オリジナル
1298 人が閲覧しました

これは、今日ラムダ式を検討していたときに頭に浮かんだ質問です。ご存知のとおり、C シリーズ言語の三項演算子 (?:) は非常に便利なステートメントです。

C の三項演算子について

式 1?式2:式3

Python で実装する方法については、次の例を参照してください:

答えは次のとおりです: X = (式 1) と式 2 (真の値が返される) または式 3 (偽の値が返される)

例:

コードをコピー コードは次のとおりです:

def main():
y = 5
x = (y > 5) and 2 または 4
print x
pass

このコードの出力は 4 です。式の条件を (y。

この結果が得られる理由:

0、''、[]、()、{}、ブール値コンテキストではどれも false で、それ以外は true です。
Python では、and および or はブール論理演算を実行しますが、ブール値を返すのではなく、実際に比較する値の 1 つを返します。
ブールコンテキスト内のすべての値が true の場合、最後の値を返します。コンテキスト内の値が false の場合、最初の false 値を返します。
値が true の場合、またはその値をすぐに返します。すべての値が false である場合、または最後の false 値を返す場合
上記の背景に基づいて、この式の意味を理解する必要があります。

"注: "この使用法にはいくつかの欠陥があるはずです。式 2 または 3 が、定義された複数の false 値 (0、''、[]、()、{}、None) の 1 つである場合、それは私の提案は、これらの偽の値を文字列の形式で表現し、「」を特別に「」として扱うべきであるということです。後で判断します

Python の威力を改めて知りました。何か洞察があればコメントしてください。

追記:

最近いくつかの記事を読みましたが、マスターがこの問題とこの欠陥に対する完璧な解決策を教えてくれました

X= (式 1) および [式 2 (真の値を返す)] または [式 3 (偽の値を返す)] (注: 式 2 と式 3 は 0、''、[]、()、 {}、なし)

式 2 と 3 を角括弧で囲み、値が false にならないようにします。この解決策は確かに優れています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート