応用情報技術者試験 令和2年秋 午前問7 解説付き過去問
問題
オブジェクト指向のプログラム言語であり、クラスや関数、条件文などのコードブロックの範囲はインデントの深さによって指定する仕様であるものはどれか。
正解
解説
この問題は、特定のプログラミング言語において、コードブロック(関数や条件文など)の範囲をどのように示すかという構文上の仕様に関する理解が問われています。
- Pythonにおける構文の特徴
Pythonは、インデント(字下げ)によってコードブロックの範囲を明示する珍しい構文を持つ言語です。
例えば、関数定義やif文、for文などでは、次の行から一定のインデントを持たせることで、そこがブロックに含まれることを示します。
このインデントは構文規則の一部 - 他の言語との違い
Python以外の選択肢であるJavaScript、Perl、Rubyは、インデントではなくキーワードや記号によってコードブロックを区切ります。
- JavaScriptやPerlでは、コードブロックは { } で囲みます。
- Rubyは do ~ end や def ~ end のようにキーワードと end を使ってブロックを表します。
- Pythonの利点と注意点
Pythonにおいては、誰が書いても一定の書式になるため、ソースコードの可読性が高く保たれやすいという利点があります。
一方で、インデントのミスがそのまま構文エラーに直結するため、正確な字下げが要求されます。
したがって、コードブロックの範囲をインデントの深さによって指定する仕様