本サイトは広告・プロモーションが含まれています
Python

【初心者向け】Pythonのf文字列を簡単解説

この記事は、こんな人にオススメ

・文字列中への変数埋め込みについて知りたい方
・format以外の文字の埋め込み方法を知りたい方
・Python勉強中の方
など

Pythonには、文字列を操作するための様々な方法がありますが、その中でもf文字列は特に便利です。
f文字列を使うことで、文字列中に変数の値を埋め込むことができます。

Pythonのバージョン3.6以降(結構新しい)からサポートされており、文字列の先頭に f を付けることで使うことができます。
この記事では、f文字列の基本的な使い方について、サンプルコードを交えて解説します。

基本的な使い方


f文字列を使用するには、文字列の先頭にfまたはFを付けます。そして、中括弧{}で囲まれた式を、文字列内に挿入します。式は、変数、リスト、タプル、辞書、関数など、Pythonの式なら何でも挿入できます。

name = 'Kon'
age = 30
message = f'My name is {name} and I am {age} years old.'
print(message)

#実行すると以下の結果が得られます
#My name is Kon and I am 30 years old.

上記のコードは、f文字列を使って変数nameとageの値を文字列に挿入しています。中括弧{}内に変数名を記述することで、変数の値がその場所に挿入されます。

また変数以外にも、Pythonの式を中括弧{}内に記述することができます。
たとえば、次のように数式を挿入することができます。

a = 10
b = 5
c = a * b
message = f'{a} multiplied by {b} equals {c}.'
print(message)

#実行すると以下の結果を得られます。
#10 multiplied by 5 equals 50.

f文字列を使うメリットの一つに、
変数の名前を打ち間違えるなどのヒューマンエラーを防止することができます。
たとえば、次のようなコードでは変数名を誤って書いてしまい、エラーが発生してしまいます。

name = 'Kon'
age = 30
message = 'My name is {name} and I am {age} years old.'.format(name=nama, age=age)
print(message)

上記のコードでは、formatの変数名を「nama」と誤って書いてしまい、エラーが発生します。
f文字列を使うことで、コードを短くすることでこういったエラーを防止できます。

式の評価

文字列の中に記述された式は、その場で評価されます。式には、変数、リテラル、演算子、関数呼び出しなどを含めることができます。式は、Pythonの式であれば何でも挿入できます。

name = 'Kon'
age = 30
message = f'In 5 years, I will be {age + 5} years old.'
print(message)

#実行すると以下の結果
#In 5 years, I will be 35 years old.

上記のコードでは、変数ageに5を加えた式をf文字列の中に記述しています。この式は、評価されて、35という値が文字列に挿入されます。

また、関数呼び出しをf文字列の中に記述することもできます。たとえば、次のように、len()関数を使って文字列の長さを取得することができます。

message = 'Hello, World!'
length = len(message)
output = f'The length of "{message}" is {length}.'
print(output)

#実行すると以下の結果
#The length of "Hello, World!" is 13.

書式設定

f文字列では、中括弧{}内に書式指定を行うことができます。
書式指定を使用することで、文字列の表示形式を制御することができます。

たとえば、小数点以下の桁数を制御する場合は、次のように書式指定を使用することができます。

import math

pi = math.pi
message = f'Pi is approximately {pi:.2f}.'
print(message)

#Result
#Pi is approximately 3.14.

上記のコードでは、mathモジュールのpi定数を使用しています。f文字列を使って、piを小数点以下2桁まで表示しています。

書式指定では、さまざまなオプションを使用して、表示形式をカスタマイズすることができます。たとえば、左詰め、右詰め、ゼロ埋めなどを指定することができます。

以下の例では、左詰め、右詰め、ゼロ埋め、幅指定などのオプションを使用しています。

name = 'Kon'
age = 30

message1 = f'Name: {name:<10} Age: {age}'
message2 = f'Name: {name:>10} Age: {age:03d}'
message3 = f'Name: {name:^10} Age: {age:+03d}'
message4 = f'Name: {name:*^10} Age: {age:4d}'

print(message1)
print(message2)
print(message3)
print(message4)

#Result
#Name: Kon        Age: 30
#Name:        Kon Age: 030
#Name:    Kon     Age: +30
#Name: ***Kon**** Age:   30

上記のコードでは、左詰め、右詰め、中央寄せ、ゼロ埋め、幅指定のオプションを使って、文字列を書式化しています。それぞれのオプションの意味は以下の通りです。

  • <: 左詰め
  • >: 右詰め
  • ^: 中央寄せ
  • 0: ゼロ埋め
  • :: 書式指定の開始
  • d: 10進数
  • *: 残りのスペースを指定の文字で埋める

エスケープシーケンス

文字列内で、中括弧{}を表示するには、エスケープシーケンスを使う必要があります。エスケープシーケンスとは、バックスラッシュ\と特定の文字を組み合わせて、特殊な意味を持つ文字を表示する方法です。

たとえば、中括弧{}を表示するには、次のように書きます。

message = f'The expression {{1 + 2}} evaluates to {1 + 2}.'
print(message)

#The expression {1 + 2} evaluates to 3.

まとめ

f文字列は、Python 3.6で導入された新しい文字列フォーマットの方法です。

f文字列を使うことで、変数や式を簡単に文字列に埋め込むことができます。
また、書式指定を使用することで、文字列の表示形式をカスタマイズすることができます。

おわりに


どうもこんにちは。
ブログ管理人のコンです。ここまで読んでいただきありがとうございます。

以前書かせていただいた米国ETFのシミュレーションwebアプリを作った際に
f文字列書きやすいなと思ったので今回の記事を書かせてもらいました。

最近の近況なのですが
UdemyでのPythonの勉強が楽しくて、休日外に出ない日々が続いております。

昔は
「プログラミングの勉強は無料でできるよ」
みたいに言っていたのですが(この発言自体は間違っていないとは思う)

やっぱり授業や講座でしか得られないものもありますね。

でもそろそろ桜の季節なので、少しは外にでてリフレッシュしたいと思います。
ではでは。

新生活応援 セール! プログラミング言語の人気オンラインコース

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA