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

回答編集履歴

4

余剰な、とは言わないか

2019/01/17 12:16

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -10,7 +10,7 @@
10
10
  > 昔C言語を学校で学んでいた際、C言語はインデントは揃えていた記憶がありません(これは私の勘違いかもしれませんが)
11
11
 
12
12
  構文の特徴の違いです。
13
- C系の言語は剰な空白文字を無視しますが、Pythonの場合インデントが深い意味を持ちます。
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

追記

2019/01/17 12:16

投稿

LouiS0616
LouiS0616

スコア35678

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

追記

2019/01/17 11:28

投稿

LouiS0616
LouiS0616

スコア35678

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

誤字

2019/01/17 11:23

投稿

LouiS0616
LouiS0616

スコア35678

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')