1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Python】andで繋いだ条件式はFalseになった時点で以降の条件式が無視される

Last updated at Posted at 2022-07-21

どこかに記事がありそうな気もしますが、備忘録もかねて…。

実際にやってみる

以下のようなコードを実行する。

sample.py
a = 0

if b == 1 and a == 1:
    print('passed')
else:
    print('failed')

変数 b は定義されていないが、一つ目の条件式に登場する。

実行結果

$ python sample.py

Traceback (most recent call last):
  File "aaa.py", line 3, in <module>
    if b == 1 and a == 1:
NameError: name 'b' is not defined

変数 b が定義されてないというエラーが出る。当然である

条件式の前後を入れ替える

コードを以下のように変更する。

sample.py
a = 0

if a == 1 and b == 1:
    print('passed')
else:
    print('failed')

変数 a は定義されているが、値が一致しない。
変数 b は and の後に登場する。

実行結果

$ python sample.py

failed

エラーが出ることなく処理が完了した。

まとめ

どうやら and で繋いだ条件式の場合、False になった時点でそれ以降の式を無視するらしい。
インタープリタなのでそういうもんなんでしょうかね。

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?