応用情報技術者 2020年 秋期 午前2 問07
問題文
オブジェクト指向のプログラム言語であり、クラスや関数、条件文などのコードブロックの範囲はインデントの深さによって指定する仕様であるものはどれか。
選択肢
ア:JavaScript
イ:Perl
ウ:Python(正解)
エ:Ruby
オブジェクト指向のプログラム言語であり、クラスや関数、条件文などのコードブロックの範囲はインデントの深さによって指定する仕様であるものはどれか【午前2 解説】
要点まとめ
- 結論:コードブロックの範囲をインデントの深さで指定する言語はPythonです。
- 根拠:Pythonは波括弧やbegin/endを使わず、インデントで構造を明示する独特の文法を持ちます。
- 差がつくポイント:他の選択肢は波括弧やキーワードでブロックを区切るため、インデントが構文に影響しない点を理解しましょう。
正解の理由
Pythonはクラス定義や関数定義、条件分岐、ループなどのコードブロックをインデントの深さで明確に区切ります。これによりコードの可読性が高まり、構文エラーもインデントミスで発生します。対してJavaScriptやPerl、Rubyは波括弧やキーワードでブロックを囲むため、インデントはスタイル上のものであり構文には影響しません。したがって、インデントで範囲を指定する仕様はPythonに限られます。
よくある誤解
インデントが重要なのはPythonだけと思いがちですが、RubyやPerlでもコードの見やすさのためにインデントは使います。ただし構文上の意味はありません。
解法ステップ
- 問題文の「インデントの深さによってコードブロックの範囲を指定する」という特徴を確認する。
- 各言語の文法ルールを思い出し、コードブロックの区切り方を比較する。
- 波括弧やbegin/endを使う言語は除外する。
- インデントが構文の一部であるPythonを選択する。
選択肢別の誤答解説
- ア: JavaScript
波括弧{}でコードブロックを囲むため、インデントは構文に影響しません。 - イ: Perl
基本的に波括弧{}でブロックを区切り、インデントは任意です。 - ウ: Python
インデントの深さでコードブロックを指定する唯一の言語です。 - エ: Ruby
波括弧やend
キーワードでブロックを区切り、インデントは構文に影響しません。
補足コラム
Pythonのインデントはスペース4つが推奨されており、タブとスペースの混在はエラーの原因になります。これによりコードの可読性と一貫性が保たれ、PEP8という公式スタイルガイドも存在します。
FAQ
Q: なぜPythonはインデントでブロックを区切るのですか?
A: 可読性を高め、コードの構造を視覚的に明確にするためです。
A: 可読性を高め、コードの構造を視覚的に明確にするためです。
Q: RubyやPerlはインデントを無視しても動作しますか?
A: はい。インデントはスタイルの問題であり、構文には影響しません。
A: はい。インデントはスタイルの問題であり、構文には影響しません。
関連キーワード: Python, インデント、コードブロック、オブジェクト指向、プログラミング言語、可読性

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

