回答編集履歴
4
余剰な、とは言わないか
answer
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
> 昔C言語を学校で学んでいた際、C言語はインデントは揃えていた記憶がありません(これは私の勘違いかもしれませんが)
|
11
11
|
|
12
12
|
構文の特徴の違いです。
|
13
|
-
C系の言語は
|
13
|
+
C系の言語は過剰な空白文字を無視しますが、Pythonの場合インデントが深い意味を持ちます。
|
14
14
|
|
15
15
|
前者は[フリーフォーマット](https://ja.wikipedia.org/wiki/%E3%83%95%E3%83%AA%E3%83%BC%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF))、後者は[オフサイドルール](https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%95%E3%82%B5%E3%82%A4%E3%83%89%E3%83%AB%E3%83%BC%E3%83%AB)なんて呼ばれてますね。
|
16
16
|
Pythonがオフサイドルールを採用している理由については、このように述べられています。
|
3
追記
answer
CHANGED
@@ -12,4 +12,17 @@
|
|
12
12
|
構文の特徴の違いです。
|
13
13
|
C系の言語は余剰な空白文字を無視しますが、Pythonの場合インデントが深い意味を持ちます。
|
14
14
|
|
15
|
-
前者は[フリーフォーマット](https://ja.wikipedia.org/wiki/%E3%83%95%E3%83%AA%E3%83%BC%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF))、後者は[オフサイドルール](https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%95%E3%82%B5%E3%82%A4%E3%83%89%E3%83%AB%E3%83%BC%E3%83%AB)なんて呼ばれてますね。
|
15
|
+
前者は[フリーフォーマット](https://ja.wikipedia.org/wiki/%E3%83%95%E3%83%AA%E3%83%BC%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF))、後者は[オフサイドルール](https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%95%E3%82%B5%E3%82%A4%E3%83%89%E3%83%AB%E3%83%BC%E3%83%AB)なんて呼ばれてますね。
|
16
|
+
Pythonがオフサイドルールを採用している理由については、このように述べられています。
|
17
|
+
> ####Python はなぜ文のグループ化にインデントを使うのですか?
|
18
|
+
...中略...
|
19
|
+
時折、C のプログラマはこのようなコード片に出くわします:
|
20
|
+
> ```C
|
21
|
+
if (x <= y)
|
22
|
+
x++;
|
23
|
+
y--;
|
24
|
+
z++;
|
25
|
+
> ```
|
26
|
+
> この条件文が真の時のみ実行されるのは x++ 文だけですが、このインデントでは誤解を招きます。経験を積んだ C プログラマでさえ、 y が x > y の時にもデクリメントされるのはなぜか分からず長いこと立ち止まることがあるでしょう。
|
27
|
+
|
28
|
+
引用元: [Python よくある質問 » デザインと歴史 FAQ](https://docs.python.jp/3/faq/design.html#why-does-python-use-indentation-for-grouping-of-statements)
|
2
追記
answer
CHANGED
@@ -5,4 +5,11 @@
|
|
5
5
|
```Python
|
6
6
|
print('hello')
|
7
7
|
print('world')
|
8
|
-
```
|
8
|
+
```
|
9
|
+
|
10
|
+
> 昔C言語を学校で学んでいた際、C言語はインデントは揃えていた記憶がありません(これは私の勘違いかもしれませんが)
|
11
|
+
|
12
|
+
構文の特徴の違いです。
|
13
|
+
C系の言語は余剰な空白文字を無視しますが、Pythonの場合インデントが深い意味を持ちます。
|
14
|
+
|
15
|
+
前者は[フリーフォーマット](https://ja.wikipedia.org/wiki/%E3%83%95%E3%83%AA%E3%83%BC%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF))、後者は[オフサイドルール](https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%95%E3%82%B5%E3%82%A4%E3%83%89%E3%83%AB%E3%83%BC%E3%83%AB)なんて呼ばれてますね。
|
1
誤字
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
> if文が終わっている、if文を抜け出しているはずなのでreturn Trueの位置はどこでもよいと思うのですが納得できません。
|
2
2
|
|
3
|
-
ifブロックと同じ
|
3
|
+
ifブロックと同じ階層にあることが重要なのです。
|
4
4
|
次のように書いてエラーになるのと同じです。
|
5
5
|
```Python
|
6
6
|
print('hello')
|