Python の and または戻り値の詳細な分析
Python では、and and or はご想像のとおり、ブール値を返しません。代わりに、実際に比較する値の 1 つを返します。
1. and:
>>> 'a' and 'b' 'b' >>> '' and 'b' '' >>> 'a' and 'b' and 'c' 'c'
は、ブールコンテキスト内の式を左から右に評価し、ブールコンテキスト内のすべての値が true の場合、最後の値を返します。
ブールコンテキストの値が false の場合、and は最初の false 値を返します
2. or:
>>> 'a' or 'b' 'a' >>> '' or 'b' 'b' >>> '' or [] or {} {} >>> 0 or 'a' or 'c' 'a'
or を使用する場合、値は and と同様にブールコンテキストで左から右に評価されます。値が true の場合、またはその値をすぐに返します
すべての値が false の場合、または最後の false 値を返します
ブール値コンテキストの または は、最初の true 値が見つかるまで式の計算を実行し続けることに注意してください。その後、残りの比較値は無視されます
3. and-or:
and-or は前の 2 つの構文を組み合わせて推論できます。
>>> a='first' >>> b='second' >>> 1 and a or b 'first' >>> (1 and a) or b 'first' >>> 0 and a or b 'second' >>> (0 and a) or b 'second' >>>
この構文は、C 言語の bool ? a : b 式に似ています。式全体が左から右に評価されるため、and 式が最初に評価されます。 1 と 'first' は 'first' と評価され、次に 'first' または 'second' は 'first' と評価されます。
0 と 'first' は False と評価され、次に 0 または '2 番目' は '2 番目' と評価されます。
and-or は主に三項演算子 bool?a:b を模倣するために使用されます。つまり、式 bool が true の場合は a を取得し、それ以外の場合は b を取得します。
and-or トリック、bool および a または b 式は、ブール値コンテキストで a が false と評価される場合、C 言語の式 bool a : b のように機能しません。
4. and-or を安全に使用する
>>> a="" >>> b="second" >>> (1 and [a] or [b]) [''] >>> (1 and [a] or [b])[0] '' >>>
[a] は空ではないリストなので、 false になることはありません。 a が 0 や ''、あるいは他の false 値であっても、要素が 1 つあるため list [a] は true になります。
責任あるプログラマーは、and-or テクニックを関数にカプセル化する必要があります:
def choose(bool,a,b): return (bool and [a] or [b])[0] print choose(1,'','second') #''

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

Pythonパラメーター注釈の代替使用Pythonプログラミングでは、パラメーターアノテーションは、開発者が機能をよりよく理解して使用するのに役立つ非常に便利な機能です...

Python:Hourglassグラフィック図面と入力検証この記事では、Python NoviceがHourglass Graphic Drawingプログラムで遭遇する可変定義の問題を解決します。コード...

Pythonスクリプトは、特定の場所のカーソル位置への出力をどのようにクリアしますか? Pythonスクリプトを書くときは、以前の出力をカーソル位置にクリアするのが一般的です...

Pythonクロスプラットフォームデスクトップアプリケーション開発ライブラリの選択多くのPython開発者は、WindowsシステムとLinuxシステムの両方で実行できるデスクトップアプリケーションを開発したいと考えています...

毎日のネットワークインタラクションでPythonを使用したクラッキング検証コードの調査、検証コードは、自動化されたプログラムの悪意のある操作を防ぐための一般的なセキュリティメカニズムです...

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...
