3章「Pythonの言語仕様」の対策ポイントと例題
3章「Pythonの言語仕様」からは本番40問中7問が出ます。全15章のなかで最も出題数が多く、内包表記・ジェネレータ・デコレータ・例外処理といった言語そのものの仕様を問う、この試験の主戦場です。
- 内包表記
- ジェネレータ式
- デコレータ
- with 文
- コンテキストマネージャ
- 例外処理
- *args / **kwargs
- f-string
この章の出題数と位置づけ
3章「Pythonの言語仕様」からは本番40問のうち7問が出題されます。 全体に占める割合は17.5%で、15章中1番目の出題数です。 合格に必要なのは28問正解(12問まで不正解可)なので、 この章の7問をどこまで取りに行くかは、他の章との兼ね合いで決めるのが現実的です。
対策のポイント
- 出題数7問は全体の17.5%です。ここを落とすと合格ライン70%(12問まで)の余裕が一気に消えるため、最優先で固めます。
- リスト内包表記とジェネレータ式の見分け(角かっこか丸かっこか、type() が何を返すか)は定番の出題です。
- デコレータは「関数を受け取って関数を返す」構造と、@ を使わない書き方に展開できるかがポイントです。
- with 文は __enter__ / __exit__ の呼ばれる順番と、例外が起きたときに __exit__ に何が渡るかまで見ておきます。
- try / except / else / finally の実行順、および例外の再送出(raise)の挙動を、コードを読んで追えるようにします。
この章の例題(3問)
当サイトで実際に出題している問題から3問を、正解と解説つきで掲載します。 すべて自作のオリジナル問題で、実際の試験問題ではありません。
例題1. 実行結果として正しいものを選べ。
x = (i * 2 for i in range(3))
print(type(x))
- 正解<class 'generator'>
- <class 'tuple'>
- <class 'list'>
- <class 'set'>
解説: 丸括弧の内包表記はタプルではなくジェネレータ式になる。タプルを作りたいなら tuple(i * 2 for i in range(3)) と書く。
例題2. 実行結果として正しいものを選べ。
a, *b = [1, 2, 3, 4]
print(b)
- 正解[2, 3, 4]
- (2, 3, 4)
- 4
- 2
解説: アスタリスク付きのターゲットは、残りの要素を必ずリストとして受け取る。元がタプルでも結果はリストになる。
例題3. 実行結果として正しいものを選べ。
n = 3.14159
print(f"{n:.2f}")
- 正解3.14
- 3.142
- 3.1
- 3.14159
解説: .2f は小数点以下2桁に丸めた固定小数点表記。桁数を指定する .2 と、有効数字を指定する .2g を混同しないこと。
この章は当サイトに全10問を収録しています。残りはドリルの「章別に解く」から解けます。