検索
ホームページバックエンド開発Python チュートリアルPython での および / または の操作ロジックに関するチュートリアルの例を共有します

pythonのandとor演算の核となる考え方

——短絡ロジック

最近私はLiao XuefengのPythonチュートリアルを読み始めました、そして私は「Pythonを徹底的に学ぶ」を入れるつもりでした最後の数章は少し難しく感じられるので、最初に「方法」から始めてください (OK、私は弱すぎますが、ゆっくりと一歩ずつ進めてください)。Liao Xuefeng のチュートリアルを読んだ後に振り返ってみると、私はそうかもしれないと思いました。いくつかのアイデアを得ることができます。

さて、今日これを書いた理由は、Liao Xuefeng のチュートリアルのフィルターの章に登場したためで、これは少し混乱していました。最初に読んだところ、コードは次のとおりです。

    #把一个序列中的空字符串删掉

    1>  def not_empty(s):
    2>      return s and s.strip()
    3>
    4>  filter(not_empty, ['A', '', 'B', None, 'C', '  '])

その後、 および / または に関する動作ロジックをいくつか確認し、私なりの理解を加えて次のようにまとめました(かどうかはわかりません)間違いがあります。漏れがあれば修正してください):

1 . 論理演算子が含まれています まず、Python のどのオブジェクトが False として扱われるかということから始めましょう。そしてどれが真実なのでしょうか?

**Python では、任意の数値型の None、0、空の文字列 ""、空のタプル ()、空のリスト []、空の辞書 {} は、カスタム型と同様に False として扱われます。 ) または

len () メソッドが実装されており、メソッドは 0 または False を返し、そのインスタンスも False として扱われ、他のオブジェクトは True になります。 **

以下は最も単純な論理演算です:

    True  and True    ==> True                  True  or True    ==> True
    True  and False   ==> False                 True  or False   ==> True
    False and True    ==> False                 False or True    ==> True
    False and False   ==> False                 False or False   ==> False

上記の 2 点を使用して、いくつかの例を示します:

example 1

    >>> a = [0, 1, '' ,3]
    >>> a[0] and a[1]
    0

a[0] = 0, a[1] = 1, so a [ 0] と a[1] は 0 と 1 (False と True) になるので、0 (False) になります。

例2

    >>> a = [0, 1, '' ,3]
    >>> a[2] and a[1]
    ''

両方が同時にFalseの場合は、左側の値を返します。

2. 2 つ以上の論理演算子が含まれています

複数の論理演算子や / or がある場合、その演算ルールの中心的な考え方は短絡論理です。さて、短絡的なアイデアを見てみましょう (私の要約はインターネット上の他の人の意見とは異なる可能性があります。私の分析をゆっくり聞いてください):

は、左側の場合、左から右に動作します。 of or 論理値が True の場合、or 以降の式はすべて短絡され、or の左側の式が直接出力されます。

式は左から右に演算され、and の左側の論理値が False の場合、and の左側の式が出力されるまで、後続のすべての and 式が短絡されます。 or の左側は接続に参加します。

or の左辺が False、または and の左辺が True の場合、短絡ロジックは使用できません。

少し抽象的かもしれませんが、大丈夫、次にいくつか例を挙げてみましょう。

これは、Python がこれらの論理ステートメントを処理するときの短絡状況を直感的に理解できるようにする賢い方法です (私も他の人から学びました)

それでは、それらが all and ステートメントであると仮定して、簡単に始めましょう Or all orステートメント:

例 1

    1>  def a():
    2>      print 'A'
    3>      return []
    4>  def b():
    5>      print 'B'
    6>      return []
    7>  def c():
    8>      print 'C'
    9>      return 1
    10> def d():
    11>     print 'D'
    12>     return []
    13> def e():
    14>     print 'E'
    15>     return 1
    16>
    17> if a() and b() and c() and d() and e():
    18>     print 'ok'
    
    #显示结果如下
    A

a() の論理値は False で、その後に and ステートメントが続き、すべて短絡され、最後に a() の式が返されます。

例2

    1>  def a():
    2>      print 'A'
    3>      return 1
    4>  def b():
    5>      print 'B'
    6>      return 1
    7>  def c():
    8>      print 'C'
    9>      return []
    10> def d():
    11>     print 'D'
    12>     return []
    13> def e():
    14>     print 'E'
    15>     return 1
    16>
    17> if a() and b() and c() and d() and e():
    18>     print 'ok'

    #显示结果如下
    A
    B
    C

a()の論理値はTrueなので短絡できません 次に、b()で論理演算を行い、b()の論理値Trueを返します。 () と return c() 論理値 False の後に and ステートメントが続く場合、すべてが短絡され、最終的に c() の式が返されます。

例3

    1>  def a():
    2>      print 'A'
    3>      return 1
    4>  def b():
    5>      print 'B'
    6>      return []
    7>  def c():
    8>      print 'C'
    9>      return 1
    10> def d():
    11>     print 'D'
    12>     return []
    13> def e():
    14>     print 'E'
    15>     return 1
    16>
    17> if a() or b() or c() or d() or e():
    18>     print 'ok'

    #显示结果如下
    A
    ok

a()の論理値はTrueで、その後にor文が続き、すべて短絡されて、最後にa()の式が返されます。

例4

    1>  def a():
    2>      print 'A'
    3>      return []
    4>  def b():
    5>      print 'B'
    6>      return []
    7>  def c():
    8>      print 'C'
    9>      return 1
    10> def d():
    11>     print 'D'
    12>     return []
    13> def e():
    14>     print 'E'
    15>     return 1
    16>
    17> if a() or b() or c() or d() or e():
    18>     print 'ok'

    #显示结果如下
    A
    B
    C
    ok

a()の論理値はTrueなので短絡できません 次に、b()で論理演算を行い、b()の論理値Falseを返します。 () および return c() 論理値が True で、すべての後に or ステートメントが続く場合、すべてが短絡され、最終的に c() の式が返されます。

次に and と or ステートメントが共存する場合の状況について話しましょう:

例 5

    1>  def a():
    2>      print 'A'
    3>      return []
    4>  def b():
    5>      print 'B'
    6>      return []
    7>  def c():
    8>      print 'C'
    9>      return 1
    10> def d():
    11>     print 'D'
    12>     return []
    13> def e():
    14>     print 'E'
    15>     return 1
    16> def f():
    17>     print 'F'
    18>     return 1
    19> def g():
    20>     print 'G'
    21>     return []
    22> def h():
    23>     print 'H'
    24>     return 1
    25>
    26> if a() and b() and  c() and d() or e() and f() or g() and h():
    27>     print 'ok'

    #输出结果如下:
    A
    E
    F
    ok

ステートメントが非常に長い場合は難しいとは考えず、まず論理的に考えてみましょう。 a() の値が False で、その後に or ステートメントが続き、a() と b()、c() と d() の 3 つの and ステートメントがあり、すべて短絡されています。 a() または e() が True の場合、e() を出力します。e() および F() が True の場合、f() を出力します。or ステートメントが続く場合、後続のステートメントはすべて短絡されます。 (要約した短絡ロジックの 3 つのポイントを十分に理解していれば大丈夫です。) 3. 三項演算

演算子

python2.5 より前の Python には三項演算子 Guido がありませんでした。 Van Rossum 氏は、これは Python の簡潔化には役立たないと考えていますが、C、C++、Java プログラミングに慣れているプログラマーは、三項演算子をシミュレートするために and or or を使用しようとしていますが、これには Python の短絡ロジックが使用されています。 🎜🎜 三項演算子 bool ? a : b 、 bool が true の場合は a 、そうでない場合は b 。 🎜

  转化为 python 语言为:

        bool and a or b

  如何理解呢? 首先 a , b 都为真,这是默认的。如果 bool 为真, 则 bool and a 为真,输出 a ,短路 b 。如果 bool 为假,短路 a,直接 bool or b ,输出 b 。

  换一种更简单的写法:

       return a if bool else b

【相关推荐】

1. Python and、or以及and-or语法总结

2. 解析python中and与or用法

3. 详细介绍Python中and和or实际用法

4. 总结Python的逻辑运算符and

5. Python:逻辑判断与运算符实例

以上がPython での および / または の操作ロジックに関するチュートリアルの例を共有しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Pythonリストに要素をどのように追加しますか?Pythonリストに要素をどのように追加しますか?May 04, 2025 am 12:17 AM

toAppendElementStoapyThonList、usetheappend()methodforsingleelements、extend()formultipleElements、andinsert()forspecificopsitions.1)useappend()foraddingoneElementatheend.2)useextend()toaddmultipleelementseffictience.3)

Pythonリストをどのように作成しますか?例を挙げてください。Pythonリストをどのように作成しますか?例を挙げてください。May 04, 2025 am 12:16 AM

To CreateapythonList、usesquareBrackets []およびSeparateItemswithcommas.1)listsaredynamicandcanholdmixdatatypes.2)useappend()、remaid()、andslicingformanipulation.3)listcompreheNsionsionsionsionsionsionsionsionsionsionsionsionsionsionsionsionsionsientionforcreating.4)

数値データの効率的なストレージと処理が重要な実際のユースケースについて話し合います。数値データの効率的なストレージと処理が重要な実際のユースケースについて話し合います。May 04, 2025 am 12:11 AM

金融、科学研究、医療、およびAIの分野では、数値データを効率的に保存および処理することが重要です。 1)財務では、メモリマッピングされたファイルとnumpyライブラリを使用すると、データ処理速度が大幅に向上する可能性があります。 2)科学研究の分野では、HDF5ファイルはデータストレージと取得用に最適化されています。 3)医療では、インデックス作成やパーティション化などのデータベース最適化テクノロジーがデータのパフォーマンスを向上させます。 4)AIでは、データシャーディングと分散トレーニングがモデルトレーニングを加速します。システムのパフォーマンスとスケーラビリティは、適切なツールとテクノロジーを選択し、ストレージと処理速度の間のトレードオフを検討することにより、大幅に改善できます。

Pythonアレイをどのように作成しますか?例を挙げてください。Pythonアレイをどのように作成しますか?例を挙げてください。May 04, 2025 am 12:10 AM

pythonarraysarasarecreatedusingthearraymodule、notbuilt-inlikelists.1)importthearraymodule.2)specifytheTypecode、emg。、 'i'forintegers.3)Arraysofferbettermemoreefficiency forhomogeneousdatabutlasefutablethanlists。

Shebangラインを使用してPythonインタープリターを指定するための選択肢は何ですか?Shebangラインを使用してPythonインタープリターを指定するための選択肢は何ですか?May 04, 2025 am 12:07 AM

Shebangラインに加えて、Pythonインタープリターを指定するには多くの方法があります。1。コマンドラインから直接Pythonコマンドを使用します。 2。バッチファイルまたはシェルスクリプトを使用します。 3. makeやcmakeなどのビルドツールを使用します。 4. Invokeなどのタスクランナーを使用します。各方法には利点と短所があり、プロジェクトのニーズに合った方法を選択することが重要です。

リストと配列の選択は、大規模なデータセットを扱うPythonアプリケーションの全体的なパフォーマンスにどのように影響しますか?リストと配列の選択は、大規模なデータセットを扱うPythonアプリケーションの全体的なパフォーマンスにどのように影響しますか?May 03, 2025 am 12:11 AM

forhandlinglaredataSetsinpython、usenumpyArrays forbetterperformance.1)numpyarraysarememory-effictientandfasterfornumericaloperations.2)nusinnnnedarytypeconversions.3)レバレッジベクトル化は、測定済みのマネージメーシェイメージーウェイズデイタイです

Pythonのリストと配列にメモリがどのように割り当てられるかを説明します。Pythonのリストと配列にメモリがどのように割り当てられるかを説明します。May 03, 2025 am 12:10 AM

inpython、listsusedynamicmemoryallocation with allocation、whilenumpyArraysalocatefixedmemory.1)listsallocatemorememorythanneededededinitivative.2)numpyArrayasallocateexactmemoryforements、rededicablebutlessflexibilityを提供します。

Pythonアレイ内の要素のデータ型をどのように指定しますか?Pythonアレイ内の要素のデータ型をどのように指定しますか?May 03, 2025 am 12:06 AM

inpython、youcanspecthedatatypeyfelemeremodelernspant.1)usenpynernrump.1)usenpynerp.dloatp.ploatm64、フォーマーpreciscontrolatatypes。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 中国語版

SublimeText3 中国語版

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

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 Mac版

SublimeText3 Mac版

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