• ベストアンサー

Pythonのリストで

Pythonのリストで質問があります list = [] if list and list[-1]: print("OK") if文をlist[-1]だけにするとindex out of rangeになるのに (これはわかります) if list and list[-1]:にするとIndexErrorにならないのでしょうか? プログラミング初心者です よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

andは2つの条件式が共にTrueの場合にTrueを、それ以外の場合にFalseを返します。 なので、1つ目の条件式がFalseだった場合、2つ目の条件式を評価する必要はなくなります。 なので、エラーにならないのです。 ちなみに、空のリストは条件式としてはFalseとして扱われます。 (下記URLの4.1参照) https://docs.python.jp/3/library/stdtypes.html

noname#229382
質問者

お礼

参考になりました。 ありがとうございました。