回答編集履歴

2

説明追加

2021/11/28 08:55

投稿

ppaul
ppaul

スコア24670

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- [公式ドキュメント 6.17. 演算子の優先順位](https://docs.python.org/ja/3/reference/expressions.html#operator-precedence)
13
+ 優先順位については[公式ドキュメント 6.17. 演算子の優先順位](https://docs.python.org/ja/3/reference/expressions.html#operator-precedence)をお読み下さい。
14
14
 
15
15
 
16
16
 
@@ -25,3 +25,23 @@
25
25
  True
26
26
 
27
27
  ```
28
+
29
+
30
+
31
+ もっとも、これが1でなくても0でない整数はこういう場合いはTrueとして扱うことになっています。
32
+
33
+
34
+
35
+ [公式ドキュメント 6.11. ブール演算 (boolean operation)](https://docs.python.org/ja/3/reference/expressions.html#booleans)には以下のように書かれています。
36
+
37
+
38
+
39
+ ```Document
40
+
41
+ ブール演算のコンテキストや、式が制御フローの文で使われる際には、次の値は偽だと解釈されます:
42
+
43
+ False 、 None 、すべての型における数値の 0、空の文字列、空のコンテナ (文字列、タプル、
44
+
45
+ リスト、辞書、集合、凍結集合など)。 それ以外の値は真だと解釈されます。
46
+
47
+ ```

1

回答追加

2021/11/28 08:55

投稿

ppaul
ppaul

スコア24670

test CHANGED
@@ -1 +1,27 @@
1
1
  (n == 0) or 1 は常に真だからです。
2
+
3
+
4
+
5
+ なぜそうなるかというと、Pythonの演算子の優先順位では、orは==よりも優先順位が低いからです。
6
+
7
+
8
+
9
+ そのため```n == 0 or 1``` は```(n == 0) or 1```と同じになります。
10
+
11
+
12
+
13
+ [公式ドキュメント 6.17. 演算子の優先順位](https://docs.python.org/ja/3/reference/expressions.html#operator-precedence)
14
+
15
+
16
+
17
+ そして1とTrueは等しいものです。
18
+
19
+
20
+
21
+ ```python
22
+
23
+ >>> True == 1
24
+
25
+ True
26
+
27
+ ```