teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2019/09/30 09:55

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -3,4 +3,8 @@
3
3
  (念の為参考リンク)
4
4
  [Python の or と and 演算子の罠 - Qiita](https://qiita.com/keisuke-nakata/items/e0598b2c13807f102469)
5
5
 
6
+ 途中で評価を切り上げるのは短絡評価と言って、様々なプログラミング言語で用いられている最適化です。`or`の場合の評価が`'Trondheim'`で終わるのは、この先を見ても見なくても全体の値が真であることが確定するからです。
7
+
8
+ `and`の場合、途中で偽の値が出てきたら全体の値が偽であることは確定して切り上げることができます。一方で、真が続く場合は途中で確定させることはできません。最後の一個が偽かもしれないからです。なので、最後まで見てぜんぶが真であることを確かめてから切り上げます。
9
+
6
- `and`
10
+ つまり、`and`と`or`で短絡評価の仕方が少し異なります。

1

追記

2019/09/30 09:55

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -1,3 +1,6 @@
1
1
  `or`については理解しているようなので、pythonの`and`や`or`は基本的に`bool`型オブジェクトを返す訳ではなくオペランドを返すというということは分かっているのだと思います。
2
2
 
3
+ (念の為参考リンク)
3
- [Python の or と and 演算子の罠 \- Qiita](https://qiita.com/keisuke-nakata/items/e0598b2c13807f102469)
4
+ [Python の or と and 演算子の罠 - Qiita](https://qiita.com/keisuke-nakata/items/e0598b2c13807f102469)
5
+
6
+ `and`は