Python f文字列(f-string)完全ガイド:基本から特殊文字の扱いまで
Pythonのf文字列(f-string)は、文字列リテラルの中に式を直接埋め込める便利な機能です。式には、変数の内容や計算結果、その他のPythonの値を使用できます。通常の文字列との違いは、文字列の先頭に「f」が付く点です。
文字列を作成するとき、その一部に特定の値を差し込みたい場面はよくあります。たとえば、ユーザーがコンソールに入力した値を含む文字列を表示したい場合などです。
Pythonでは以前から文字列フォーマット機能が提供されていましたが、Python 3.6で新しい手法としてf文字列が導入されました。この記事では、コード例を交えながらf文字列の基本を解説します。最後まで読めば、自信を持ってf文字列を使いこなせるようになるでしょう。
従来のPython文字列フォーマット
Python 3.6以前は、文字列をフォーマットする方法として主に2つがありました。「%(パーセント)フォーマット」と「str.format()」です。
%(パーセント)フォーマット
%フォーマットはPythonの初期から存在する方法で、1つまたは複数の値で文字列を整形できます。
以下は%フォーマットの使用例です。
email = "lindsay.ballantyne@gmail.com"
new_string = "Your email address is %s." % email
print(new_string)
このコードの出力結果:
Your email address is lindsay.ballantyne@gmail.com.
このコードでは、「Your email address is %s.」という文字列内で%sをプレースホルダーとして使用しています。行末の「% email」によって、%sがユーザーのメールアドレスに置き換えられます。
str.format()
Python 2.6では、新しい文字列フォーマット方法としてformat()関数が導入されました。
2つの値で文字列をフォーマットしたい場合は、format()メソッドを次のように使えます。
name = "Lindsay Ballantyne"
email = "lindsay.ballantyne@gmail.com"
new_string = "Hello, {}. Your email address is {}.".format(name, email)
出力結果:
Hello, Lindsay Ballantyne. Your email address is lindsay.ballantyne@gmail.com.
ここでは「name」と「email」という2つの変数を定義し、プログラム利用者の名前とメールアドレスを格納しています。そして.format()構文を使って、これらの値を文字列に挿入しています。
Python f文字列の書式
f文字列は、文字列リテラルの中に式を埋め込むための機能です。変数、文字列、関数の戻り値などを文字列に組み込めます。f文字列は、文字列本体の直前に「f」を付けて表します。
Python 3.6で導入されたf文字列により、文字列フォーマットが格段に簡単になりました。
f文字列では波括弧({})を使って、文字列に埋め込む値を指定します。大文字の「F」を使うことも可能です。
基本的な構文は次のとおりです。
f"This is a string."
これはフォーマット済み文字列リテラルの定義です。波括弧{}を使って値を追加できます。
文字列フォーマットは「文字列補間(string interpolation)」と呼ばれることもあります。どちらも「別の文字列に値を組み込む」という同じ概念を指します。
それでは、f文字列の実際の例を見てみましょう。
f文字列のPythonサンプル
文字列に「Lindsay Ballantyne」という名前を追加したい場合、次のようなコードになります。
name = "Lindsay Ballantyne"
print(f"Your name is {name}.")
出力結果:
Your name is Lindsay Ballantyne.
このコードでは、ユーザー名を格納する変数「name」を宣言し、f文字列を使ってその値を文字列に挿入しています。
このように、変数の値をf文字列に直接埋め込めます。format()メソッドや%フォーマットよりもシンプルな構文で書けるのが魅力です。
さらに、f文字列は関数や任意の式も文字列内で評価できます。たとえば、f文字列内で計算を行いたい場合は次のように書きます。
name = "Lindsay Ballantyne"
print(f"Your name is {name}. On your next birthday, you will be {22 + 1}.")
出力結果:
Your name is Lindsay Ballantyne. On your next birthday, you will be 23.
文字列内で計算が実行できました。
これは、文字列リテラル内の式が実行時に評価され、メインプログラムの一部として扱われるためです。ここでは「22 + 1」という計算を波括弧で囲んで実行しました。
複数行のPython f文字列
f文字列の構文は複数行の文字列フォーマットにも対応しています。複数のf文字列を括弧で囲むことで、複数行のf文字列を作成できます。
複数行の文字列で値をフォーマットする例を見てみましょう。
name = "Lindsay Ballantyne"
email = "lindsay.ballantyne@gmail.com"
age = 22
profile = (
f"Name: {name} \n"
f"Email: {email} \n"
f"Age: {age} \n"
)
print(profile)
出力結果:
Name: Lindsay Ballantyne
Email: lindsay.ballantyne@gmail.com
Age: 22
このコードでは、ユーザー情報を格納する3つの変数(name、email、age)を宣言し、それらを使って複数行の文字列をフォーマットしています。
注目すべきは、複数行の各行すべてに「f」を付けている点です。各行にfを付けないと、その行ではf文字列の構文が有効になりません。
f文字列での特殊文字の扱い
f文字列を使い始める前に、もう1つ知っておくべきことがあります。それは特殊文字の扱い方です。
以下に、f文字列を使用する際に覚えておきたいルールをいくつか紹介します。
引用符(クォーテーションマーク)
f文字列では、式の中に引用符を使えます。ただし、f文字列全体を囲む引用符とは異なる種類の引用符を使う必要があります。例を見てみましょう。
print(f"{'It is Thursday!'}")
出力結果:
It is Thursday!
波括弧で囲まれた部分(式)にはシングルクォート(')を、文字列全体にはダブルクォート(")を使用している点に注目してください。
辞書(ディクショナリ)
Pythonの辞書から値を参照するには、引用符が必要です。辞書のキーを参照するときは、f文字列自体とは異なる種類の引用符を使うようにしましょう。
辞書とf文字列を組み合わせた例です。
user = {"name": "Lindsay Ballantyne", "email": "lindsay.ballantyne@gmail.com"}
print(f"Hello, {user['name']}. Your email address is: {user['email']}.")
出力結果:
Hello, Lindsay Ballantyne. Your email address is: lindsay.ballantyne@gmail.com.
辞書のキーを参照する際はシングルクォート('')を使い、外側のf文字列にはダブルクォート("")を使っています。これにより、文字列フォーマットエラーの発生を防げます。
波括弧(中括弧)
f文字列の中で波括弧そのものを表示したい場合は、二重の波括弧を使います。
print(f"{{This is a test}}")
出力結果:
{This is a test}
結果には波括弧が1組だけ表示されました。これは、片方の波括弧がf文字列によって「フォーマット処理の開始」を示す記号として解釈されるためです。したがって、二重にした波括弧のうち内側の1組だけが出力されます。
コメント(ハッシュタグ)
f文字列の中にハッシュ記号(#)を含めてはいけません。#はPythonにおけるコメントを意味するため、構文エラーの原因になります。
文字列内で#を使いたい場合は、f文字列の式の部分ではなく、文字列として整形された部分に配置しましょう。次の例をご覧ください。
user_id = "202"
print(f"User ID: #{user_id}")
出力結果:
User ID: #202
ここでは、ハッシュ記号をf文字列の波括弧の前に配置しました。こうすることで、#が正しく文字列に表示されます。
まとめ
Pythonのf文字列は、文字列リテラルの中に式を埋め込むための新しいツールです。
従来の方法と比べたf文字列の利点は数多くあります。まず可読性が高く、多くの値を扱う場合でも快適に動作します。
この記事では、f文字列と他の文字列フォーマット方法の比較や、コードでのf文字列の使い方を実例とともに解説しました。これであなたも、プロの開発者のようにPythonのf文字列を活用できるはずです!
Pythonについてさらに学びたい方は、ぜひ当サイトのPython学習ガイドもチェックしてみてください。
-
キーボードショートカット完全ガイド:作業効率を劇的に上げる必須テクニック
日頃からパソコンを使っている私たちは、ほとんどの作業を問題なくこなせるようになっています。しかし、多くの人が知らないのが、よく使うコマンドの数々にキーボードショートカットが数十種類も組み込まれているという事実です。 キーボードショートカットとは? キーボードショートカットとは、1つのキー、あるいは複数のキーの組み合わせを押すだけで、ソフトウェアのメニュー操作や各種機能を実行できる仕組みです。マウスでメニューを辿るよりもはるかに素早くコマンドを実行できるため、アプリの操作が格段に速く、簡単になります。 キーボードショートカットは、Windows、Mac、LinuxといったOSはもちろん、Webブ
-
キーボード選びの完全ガイド|用途別に失敗しない1台の選び方
キーボードは、パソコン周辺機器の中でも最も使用頻度が高いものの一つです。新しいキーボードの購入を検討しているなら、決める前にチェックしておくべき重要なポイントがいくつかあります。特に、複数のデバイスで使い回す予定がある場合は、事前の下調べが欠かせません。キーボード選びが難しいのは、市場に出回る製品が数百種類に上り、接続方法や使い方も多岐にわたるからです。このガイドでは、キーボードの基礎知識からメンテナンスのポイント、そして自分に合った一台の選び方までをわかりやすく解説します。本ガイドは「キーボードの基礎知識」「お手入れとメンテナンス」「おすすめキーボード」の3つのセクションで構成されています。