回答編集履歴
3
test
CHANGED
@@ -18,3 +18,14 @@
|
|
18
18
|
elif (m == 4 or m== 6 or m == 9 or m == 11) and (d >= 1 and d <= 30):
|
19
19
|
```
|
20
20
|
|
21
|
+
# 短絡評価
|
22
|
+
pythonの or や and は短絡評価といって一般的なANDやORとは少し違い、
|
23
|
+
簡単に言えば下記のような動作になっています。(計算の高速化)
|
24
|
+
「a or b」
|
25
|
+
a がTrueならその時点でTrue (bは評価されません)
|
26
|
+
a がFalseなら次にbが評価され、bがTrueなら 全体がTrueとなります。bもFalseなら全体はFalseになります。
|
27
|
+
|
28
|
+
「a and b」
|
29
|
+
a がFalseならその時点でFalse (bは評価されません)
|
30
|
+
a がTrue なら次にbが評価され、bがTrueなら 全体がTrueとなります。bがFalseなら全体はFalseとして評価されます。
|
31
|
+
|
2
test
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
```
|
2
2
|
elif m == 1 or m== 3 or m == 5 or m == 7 or m == 8 or m == 10 or m == 12 and d >= 1 and d <= 31:
|
3
3
|
```
|
4
|
-
この部分で、m == 12 and d >= 1 and d <= 31 は Falseとなりますが、m==1の時点でTrueと評価されて全体がTrueとなります。(短絡評価)
|
4
|
+
この部分で、先に評価される m == 12 and d >= 1 and d <= 31 は Falseとなりますが、m==1の時点でTrueと評価されて全体がTrueとなります。(短絡評価)
|
5
5
|
|
6
6
|
m == 1 or m== 3 or m == 5 or m == 7 or m == 8 or m == 10 or m == 12
|
7
7
|
と
|
1
修正
test
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
```
|
2
2
|
elif m == 1 or m== 3 or m == 5 or m == 7 or m == 8 or m == 10 or m == 12 and d >= 1 and d <= 31:
|
3
3
|
```
|
4
|
-
この部分で、mが1の時点で
|
4
|
+
この部分で、m == 12 and d >= 1 and d <= 31 は Falseとなりますが、m==1の時点でTrueと評価されて全体がTrueとなります。(短絡評価)
|
5
5
|
|
6
6
|
m == 1 or m== 3 or m == 5 or m == 7 or m == 8 or m == 10 or m == 12
|
7
7
|
と
|