6章「テキストの処理」の対策ポイントと例題
6章「テキストの処理」からは本番40問中4問が出ます。文字列メソッドと正規表現(re モジュール)が中心で、出題数は3番目に多い章です。
- re
- str メソッド
- difflib
- textwrap
- unicodedata
- string.Template
この章の出題数と位置づけ
6章「テキストの処理」からは本番40問のうち4問が出題されます。 全体に占める割合は10.0%で、15章中3番目の出題数です。 合格に必要なのは28問正解(12問まで不正解可)なので、 この章の4問をどこまで取りに行くかは、他の章との兼ね合いで決めるのが現実的です。
対策のポイント
- re.match は文字列の先頭のみ、re.search は途中も探す、という違いが最頻出です。
- re.findall と re.finditer の戻り値の型、グループがあるときに findall が何を返すかは間違えやすい所です。
- split / rsplit / partition、strip / lstrip / rstrip の引数の意味(削る文字の集合であって、文字列ではない)を確認します。
- textwrap による折り返し、unicodedata による正規化(NFKC など)も出題範囲です。
この章の例題(3問)
当サイトで実際に出題している問題から3問を、正解と解説つきで掲載します。 すべて自作のオリジナル問題で、実際の試験問題ではありません。
例題1. 実行結果として正しいものを選べ。
n = 3.14159
print(f"{n:.2f}")
- 正解3.14
- 3.142
- 3.1
- 3.14159
解説: .2f は小数点以下2桁に丸めた固定小数点表記。型を省いた .2 は桁数の指定ではなく有効数字2桁の指定(.2g とほぼ同じ)で、同じ 3.14159 でも 3.1 になる。f の付け忘れで意味が変わる。
例題2. 実行結果として正しいものを選べ。
print(" a b ".split())
- 正解['a', 'b']
- ['', '', 'a', '', 'b', '', '']
- [' a b ']
- ['a ', ' b']
解説: 引数なしの split() は連続する空白をひとまとめの区切りとして扱い、先頭と末尾の空白を無視する。split(' ') と明示すると空文字列を含む結果になり、挙動が変わる。
例題3. 実行結果として正しいものを選べ。
import re
print(re.match(r"b", "abc"))
- 正解None
- マッチオブジェクトが表示される
- 'b'
- re.error
解説: re.match は文字列の先頭からしか照合しない。途中の位置を探すのは re.search。fullmatch は全体一致。
この章は当サイトに全29問を収録しています。残りはドリルの「章別に解く」から解けます。