用語比較
f文字列とformatメソッドの違い(書式化の書き方とフォーマット指定子)
f文字列とstr.format()メソッドは、どちらも文字列の中に値を埋め込んで書式を整える方法です。Python 3 エンジニア認定基礎試験の第7章「入出力」は、公式チュートリアルの7.1をもとにしていて、2つの書き方を読み分ける設問が作られます。
f文字列は文字列の前にfを付けて波括弧の中に式を直接書き、str.format()は波括弧を目印にして値を引数で渡します。公式チュートリアルの例では、どちらも波括弧とフォーマット指定子(:.3fなど)を使います。
このページは、f'...'と'...'.format(...)の書き方を見て、何が出力されるのか迷う人を対象にしています。見るのは、値が波括弧の中に書かれているのか、format()の引数として渡されているのかです。
この記事の目次
この記事の根拠と出典
各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。Python3エンジニア認定基礎試験の一次情報確認日: 2026-09-18。
結論
f文字列
文字列の開き引用符の前にfまたはFを付け、波括弧の中にPythonの式を書く方法。公式チュートリアルは、f'πの値はだいたい {math.pi:.3f} です。'が'πの値はだいたい 3.142 です。'になる例を示しています。
str.format()メソッド
文字列の波括弧(フォーマットフィールド)を、format()に渡したオブジェクトで置き換える方法。波括弧の中の数字は引数の位置、名前はキーワード引数の名前を表します。
違いを表で確認
| 比較軸 | f文字列 | str.format()メソッド |
|---|---|---|
| 値の渡し方 | 波括弧の中に式を直接書く(f'{year}年の{event}の結果') | format()の引数として渡し、波括弧は置き換える場所の目印にする |
| 文字列の見た目 | 開き引用符の前にfまたはFを付ける | 文字列には何も付けず、後ろに.format(...)を付ける |
| 引数の指定 | 引数を使わず、変数や式を波括弧に書く | '{1} and {0}'.format('spam', 'eggs')は'eggs and spam'になる(数字は引数の位置) |
| 名前での指定 | 波括弧の中に変数名をそのまま書く | '{food}'.format(food='spam')のように、キーワード引数の名前で参照する |
| フォーマット指定子 | 式の後ろに:を付けて書く({math.pi:.3f}は3.142) | 波括弧の中に:を付けて書く('{:2.2%}'.format(percentage)は49.67%) |
| 値の変換・辞書の扱い | !a・!s・!rでascii()・str()・repr()を適用する。{bugs=}は式と値を並べて表示する | 辞書は'{Jack:d}'.format(**table)のように、**でキーワード引数として渡せる |
Python3エンジニア認定基礎試験の学習に使う書籍(Amazon)
試験範囲を通して読むときの1冊です。読んだ章は、このサイトの章別問題で確かめられます。
どこで迷っているかを切り分ける
fを付け忘れた文字列がそのまま出力される人
fを付けない文字列の波括弧は置き換えられません。f文字列は、開き引用符の前にfまたはFを付けたときだけ式が評価されます。
format()の波括弧の数字が何を表すのか迷う人
波括弧の中の数字は、format()に渡した引数の位置です。'{1} and {0}'.format('spam', 'eggs')は'eggs and spam'になります。
小数点以下の桁数の指定が思い出せない人
式の後ろの:.3fが、小数点以下3桁に丸める指定です。f文字列でもformat()でも、フォーマット指定子の考え方は共通です。
具体例で使い分ける
例 1
fを付けて式を波括弧に書く
year = 2016、event = '国民投票'のとき、f'{year}年の{event}の結果'を評価する場面です。
- 開き引用符の前にfがあり、波括弧の中に変数が書かれています。
- 波括弧の部分が、それぞれの値に置き換えられます。
結論: f文字列なので、'2016年の国民投票の結果'になります。
例 2
引数の位置を数字で指定する
'{1} and {0}'.format('spam', 'eggs')を評価する場面です。
- 波括弧の数字は、format()に渡した引数の位置です。
- {1}は2番目の'eggs'、{0}は1番目の'spam'を指します。
結論: str.format()の引数の位置指定なので、'eggs and spam'になります。
例 3
キーワード引数の名前で参照する
'This {food} is {adjective}.'.format(food='spam', adjective='absolutely horrible')を評価する場面です。
- 波括弧の中の名前が、キーワード引数の名前と対応しています。
- 引数の位置ではなく、名前で値が決まります。
結論: 'This spam is absolutely horrible.'になります。
問題文から答えを選ぶ手順
- 1
文字列の前にfがあるかを見る
開き引用符の前にfまたはFがあればf文字列、後ろに.format(...)があればstr.format()です。
- 2
波括弧の中身を読む
f文字列では波括弧の中が式、str.format()では空か数字か名前です。
- 3
値の出どころを確認する
f文字列は周囲の変数、str.format()は括弧の中の引数から値を取ります。
- 4
フォーマット指定子を最後に当てはめる
コロンの後ろの指定(.3fなど)で、桁数・幅・表示形式を決めます。
試験での見分け方
- 1開き引用符の前にfまたはFがあればf文字列。波括弧の中にPythonの式を書ける。
- 2後ろに.format(...)が付いていればstr.format()。波括弧は置き換える場所の目印。
- 3format()の波括弧の数字は引数の位置、名前はキーワード引数の名前。
- 4コロンの後ろがフォーマット指定子。:.3fは小数点以下3桁。
- 5fを付けない文字列の波括弧は、置き換えられない。
誤答しやすい選択肢
f文字列の波括弧に変数名を書くだけで置き換わると考える
修正: 置き換わるのは、開き引用符の前にfが付いている文字列だけです。fがなければ、波括弧もそのまま文字として扱われます。
format()の{1}を「1番目」の引数だと考える
修正: 公式チュートリアルは、波括弧の中の数字を引数の位置と説明し、'{1} and {0}'.format('spam', 'eggs')が'eggs and spam'になる例を示しています。数え始めは0です。
フォーマット指定子の書く場所を取り違える
修正: f文字列では式の後ろに:を付けて書きます({math.pi:.3f})。format()では波括弧の中に:を付けて書きます({:2.2%})。
確認問題
Q1import mathのあとで、f'πの値はだいたい {math.pi:.3f} です。'を実行すると何と表示される?
答え: πの値はだいたい 3.142 です。
:.3fは、小数点以下3桁に丸めるフォーマット指定子です。
Q2'{1} and {0}'.format('spam', 'eggs')の結果は?
答え: 'eggs and spam'
波括弧の数字は、format()に渡した引数の位置を表します。
Q3year = 2016、event = '国民投票'のとき、f'{year}年の{event}の結果'の結果は?
答え: '2016年の国民投票の結果'
f文字列では、波括弧の中の式が値に置き換えられます。
到達チェック
- f文字列とstr.format()の書き方を見分けられる
- format()の波括弧の数字とキーワード引数の意味を説明できる
- コロンの後ろのフォーマット指定子(:.3fなど)を読める
- fを付けない文字列の波括弧は置き換えられないと説明できる
関連ページで確認する
同じ資格で次に知りたいこと
- 辞書内包表記とリスト内包表記の違い(Python 3 エンジニア認定基礎試験)
辞書内包表記とリスト内包表記の違いを、括弧とキー:値の書き方、結果の型、キーの条件、Python 3 エンジニア認定基礎試験での読み取り手順と確認問題まで、公式チュートリアルに沿って解説します。
- globalとnonlocalの違い|再束縛する先のスコープ(Python3基礎)
globalとnonlocalの違いを、代入が届く先(モジュールの変数か、外側の関数の変数か)で整理します。Python公式チュートリアル9.2の記述、出力を読む例、確認問題つき。
- lambda式とdef関数の違い(単一の式・名前・return)
lambda式とdef関数の違いを、単一の式という制限、関数名、return の書き方、list.sort() の key への渡し方、Python 3.9 で実際に実行した出力、Python3エンジニア認定基礎試験での判断手順と確認問題まで解説します。
よくある質問
Qf文字列とformatメソッドは何が違う?
f文字列は文字列の前にfを付けて波括弧の中に式を書き、str.format()は波括弧を目印にして値を引数で渡します。
Qf文字列は何と呼ばれる?
フォーマット済み文字列リテラルです。短くしてf-stringとも呼びます。
Qformat()の波括弧の数字は何を表す?
format()に渡した引数の位置です。'{0} and {1}'.format('spam', 'eggs')は'spam and eggs'になります。
Qf文字列でデバッグ用に変数名と値を並べて表示できる?
できます。公式チュートリアルは、=指定子を使うと式、イコール記号、評価した文字列表現の形式で表示されると説明しています。
QPython3エンジニア認定基礎試験でこの内容はどの章で出る?
第7章「入出力」です。試験案内では、7章は40問中1問(2.5%)と記されています。
次に見る比較
- G検定・DS検定・統計検定2級で重なる用語10語の比較
同じ名前の用語の定義と収録章を、資格ごとに並べます。
- ベイズの定理と条件付き確率の違い(統計検定2級の式と計算例)
求める確率の向きの違いと、陽性になる確率の計算例を確かめます。
- 紛らわしい用語ペア早見表
混同しやすい用語の違いと判定の手掛かりを、資格別の一覧で確かめます。
執筆: ミナト編集部(運営者情報を見る)
