(最終更新日:2023年7月)
✔以下のような疑問をお持ちの方へ向けた記事です
「Pythonのf文字列(f-strings)では何ができるのだろうか?」
「f文字列(f-strings)の基本的な使い方を知りたい」
「f文字列(f-strings)の実際の使用例を見てみたい」
✔この記事を読むことで得られる知識
- Pythonのf文字列(f-strings)の基本的な概念と使い方
- f文字列(f-strings)を使ったデータ操作の方法
- f文字列(f-strings)の具体的な使用例
この記事では、Pythonのf文字列(f-strings)の基本的な概念から、その使い方、そして実際にデータを操作する具体的な例までを詳しく解説します。
ぜひ最後までご覧ください。
Pythonとは:Pythonの特性と普及について
こちらでは、Pythonという言語について詳しく解説します。
Pythonの特性を理解し、なぜそれが広く使われているのかを探求することで、f文字列についてもより理解を深められます。
- Pythonの特性
- Pythonが広く使われている理由
Pythonの特性
Pythonは、読みやすく、効率的で、非常に使いやすい一方で強力なプログラミング言語です。
その文法は、コードが理解しやすくなるように設計されており、ほかのの言語と比べて直感的で簡潔と言えるでしょう。
Pythonはインタプリタ型の言語であるため、コードの変更をリアルタイムで試せます。
Pythonが広く使われている理由
Pythonの広範な用途とアクセシビリティにより、Pythonは科学計算、ウェブ開発、データ分析、AIや機械学習など、さまざまな分野で使われています。
また、Pythonの大規模なコミュニティは、数多くのライブラリとフレームワークを提供しており、これにより、特定の問題に対する解決策を見つけやすくなっています。
Webアプリ開発で活用するフレームワーク「Django」についてはこちらで解説しています。
Pythonでのプログラミングの基礎:変数とデータ型
こちらでは、Pythonでのプログラミングの基礎となる概念、変数とデータ型について解説します。
これらの基本概念を理解することで、f-stringで扱う文字列が何なのかが理解できるでしょう。
- 変数とは
- Pythonの主なデータ型
変数とは
変数は、データを格納するための容器です。
Pythonでは、特定の値を指す名前付きの参照として機能します。
x = 10
「x」という名前の変数に数値の10を割り当てています。
Pythonの主なデータ型
Pythonは、以下のような多様なデータ型をサポートしています。
- 数値(整数、浮動小数点数、複素数)
- 文字列
- リスト
- タプル
- 辞書
- 集合
これらのデータ型を理解することは、Pythonプログラミングでのデータ操作とアルゴリズムの作成に必要不可欠です。
データ型を確認する方法をお伝えしている記事です。
Pythonでの関数の基礎:関数の定義と呼び出し
こちらでは、Pythonでの関数の基本的な定義方法とその呼び出し方について学びましょう。
関数はコードの再利用を可能にし、複雑なプログラムを管理しやすい小さな部分に分割するのに役立ちます。
- 関数とは
- Pythonでの関数の定義方法
- Pythonでの関数の呼び出し方
関数とは
関数は、特定のタスクを実行するためのコードのまとまりです。
関数は一度定義すれば、何度でも呼び出して使用できます。
関数には引数を渡すことが可能で、これにより関数の振る舞いをカスタマイズ可能です。
Pythonでの関数の定義方法
Pythonで関数を定義するには、defキーワードを使用します。
関数名と括弧内の引数を指定し、行の終わりはコロン(:)です。
関数の本体はインデントをひとつ深くし、その中にタスクのコードを記述します。
以下は、2つの数値を足し合わせる関数の例です。
def add(a, b):
return a + b
Pythonでの関数の呼び出し方
関数の呼び出し方法は、関数名と括弧(())を記述して、引数(ある場合)を括弧の中に指定することです。
先ほど定義したadd関数を呼び出すためには、以下のようにします。
result = add(10, 5)
print(result) # Output: 15
関数はコードの再利用を容易にし、コードの構造を整理するのに役立ちます。
Pythonでの関数の応用:引数と戻り値
こちらでは、関数のより高度な概念である引数と戻り値について詳しく見ていきましょう。
これらの理解は、より複雑な関数を作成するために必要です。
- 関数の引数とは
- Pythonでの関数の戻り値の扱い
関数の引数とは
引数は、関数に与える情報であり、関数の振る舞いをカスタマイズします。
いわゆる入力値が引数で、処理をおこなったうえで、結果を戻すのです。
またデフォルト引数を指定することで、引数が与えられなかった場合でも、一定の振る舞いをおこなうよう設定できます。
Pythonでの関数の戻り値の扱い
戻り値は、関数が処理を完了した後に返す結果のこと。
Pythonでは、return
キーワードを使用して戻り値を指定します。
関数がreturn
キーワードを含まない場合、またはreturn
キーワードの後に何も続かない場合、その関数はNone
を返します。
Pythonのf文字列(フォーマット文字列)の基本的な使い方
ここでは、Pythonでの文字列の扱いを容易にするための機能、f文字列について詳しく見ていきます。
f文字列の使い方を理解することで、より見やすく理解しやすい文字列を作成することが可能になります。
- f文字列の使い方
- 書式指定とその種類
f文字列の使い方
Pythonのf文字列(またはフォーマット文字列)は、文字列内に変数の値を直接埋め込める機能です。
文字列の前にf
またはF
を置き、文字列内で変数を波括弧{}
で囲むことで使用できます。
例えば、以下が例です。
name = "太郎"
greeting = f"こんにちは, {name}!"
print(greeting) # Output: こんにちは, 太郎!
書式指定とその種類
f文字列では、波括弧{}
内で、値の書式を指定できます。
書式指定子を使用して、小数点以下の桁数、左右の寄せ方向、ゼロ埋め、数値の表記形式(二進数、八進数、十六進数など)など、任意の形にできるのです。
例えば、小数点以下2桁に丸める書式指定は次のようになります。
pi = 3.14159265
formatted = f"{pi:.2f}"
print(formatted) # Output: 3.14
f文字列での文字列配置と埋め込み
f文字列では、テキストの配置や埋め込みも可能です。
これにより、出力結果の見た目を細かく調整できます。
- テキストの配置:左寄せ、中央寄せ、右寄せ
- ゼロ埋めと桁区切り
テキストの配置:左寄せ、中央寄せ、右寄せ
テキストの配置は、書式指定子を用いて調整可能です。
<
:左寄せ>
:右寄せ^
:中央寄せ
指定子の後には、文字列が配置される全体の幅を指定しましょう。
例えば次のように使用します。
name = "Alice"
print(f"{name:<10}") # Left align: "Alice "
print(f"{name:>10}") # Right align: " Alice"
print(f"{name:^10}") # Center align: " Alice "
ゼロ埋めと桁区切り
ゼロ埋めは、文字列が指定した幅に満たない場合に、空白の代わりに0を挿入する機能です。
これは0
指定子を使用しておこないます。
また大きな数値を扱う場合には、桁区切りも有効です
これは,
指定子を用いておこなってください。
以下が例です。
number = 1234567890
print(f"{number:0>12}") # Zero padding: "001234567890"
print(f"{number:,}") # Digit grouping: "1,234,567,890"
f文字列での数値表記
Pythonのf文字列では、数値をさまざまな形式で表示可能です。
データを理解しやすく視覚化しやすくなります。
- 進数表記:2進数、8進数、16進数
- 小数点以下の桁数と有効数字
- 指数表記とパーセント表記
進数表記:2進数、8進数、16進数
f文字列では、書式指定子を使用して数値を2進数、8進数、16進数で表示することが可能です。
それぞれ、b
、o
、x
(または大文字のX
)を使用します。
例はこちらです。
number = 42
print(f"{number:b}") # Binary: "101010"
print(f"{number:o}") # Octal: "52"
print(f"{number:x}") # Hexadecimal: "2a"
小数点以下の桁数と有効数字
f文字列を使用すると、浮動小数点数を表示する際に小数点以下の桁数を制御できます。
また、全体の桁数を制限して有効数字の指定も可能です。
それぞれ.nf
や.ng
の形式で指定します(nは数字)。
例えば次のようになります。
pi = 3.14159265
print(f"{pi:.3f}") # Decimal with 3 places: "3.142"
print(f"{pi:.3g}") # 3 significant digits: "3.14"
指数表記とパーセント表記
f文字列を利用すれば、指数表記やパーセント表記も可能です。
これらの表記法は特に大きな数値や非常に小さな数値、そしてパーセントとして表現するべき値を扱う際に便利です。
具体的には、e
またはE
を使うことで指数表記が可能となり、%
を使うことでパーセント表記が可能となります。
以下がその具体例です。
number = 1234567890
small_number = 0.0001234
percent = 0.25
print(f"{number:e}") # Exponential notation: "1.234568e+09"
print(f"{small_number:e}") # Exponential notation: "1.234000e-04"
print(f"{percent:%}") # Percentage: "25.000000%"
f文字列での日付時刻の表記
Pythonのdatetime
モジュールを用いて、日付や時刻を取得し、f文字列での書式指定が可能です。
書式指定子として以下が用いられます。
%Y
:4桁の年%m
:2桁の月%d
:2桁の日%H
:2桁の時%M
:2桁の分%S
:2桁の秒
例えば次のようになります。
from datetime import datetime
now = datetime.now()
print(f"{now:%Y-%m-%d %H:%M:%S}") # "2023-06-24 14:30:45"
Pythonのf文字列を使って多様な数値表現や日付時刻の表現を実現できます。
Pythonのdatetime型や書式指定しについて詳しく知りたい方は以下の記事もご覧ください。
f文字列の高度な使用法
こちらでは、波括弧の使用、ネストした置換フィールド、そしてraw文字列との組み合わせについて解説します。
f文字列の基本的な使い方を把握したところで、より高度な使用法を探っていきましょう。
- 波括弧{}の使用
- ネストした置換フィールド
- raw文字列との組み合わせ
波括弧{}の使用
f文字列では、波括弧{}
を使って変数の値を文字列内に埋め込めます。
ただし、文字列内でリテラルの波括弧を表示したい場合は、二重の波括弧{{}}
を使うことで表現可能です。
n = 100
print(f"{n} is a hundred") # "100 is a hundred"
print(f"{{n}} is a hundred") # "{n} is a hundred"
ネストした置換フィールド
f文字列では、置換フィールドの中にさらに置換フィールドを入れる、すなわち「ネストした置換フィールド」を作ることも可能です。
動的にフィールド名を変えるなどの操作が可能となります。
name = "John"
age = 20
print(f"{name}'s age is {age}.") # "John's age is 20."
var = "name"
print(f"{var} is {locals()[var]}.") # "name is John."
raw文字列との組み合わせ
f文字列は、raw文字列と組み合わせることも可能です。
raw文字列は、エスケープシーケンスを無視する文字列で、先頭にrを付けて表現します。
これは特にパスの表記などで便利です。
path = r"C:\User\Documents"
print(f"The file path is {path}.") # "The file path is C:\User\Documents."
f文字列とformat()メソッドの違い
f文字列と似た機能を持つものとして、文字列メソッドのformat()
があります。
ここでは、これらの使い方の違いとそれぞれの特性について探っていきましょう。
- 式の使用可能性
- 辞書のキー指定方法
- 変数名とその値を同時に出力する方法
式の使用可能性
format()
メソッドは、引数として与えた値を文字列に挿入できるもの。
一方、f文字列では波括弧{}
内に直接式を記述することが可能です。
これにより、文字列内で計算を行ったり、関数を呼び出したりすることができます。
n = 10
print("The double of {} is {}.".format(n, n * 2)) # "The double of 10 is 20."
print(f"The double of {n} is {n * 2}.") # "The double of 10 is 20."
辞書のキー指定方法
format()
メソッドとf文字列のもうひとつの違いは、辞書のキーを使って値を取り出せるかどうか、です。
f文字列では直接キーを用いることができますが、format()
メソッドでは辞書全体を引数に渡し、値を取り出すキーを{}
内で指定します。
person = {"name": "John", "age": 20}
print("{name} is {age} years old.".format(**person)) # "John is 20 years old."
print(f'{person["name"]} is {person["age"]} years old.') # "John is 20 years old."
変数名とその値を同時に出力する方法
Python 3.8から、f文字列では変数名とその値を同時に出力する新機能が追加されました。
変数とコロンを組み合わせることで、変数名とその値を一度に出力できるのです。
n = 10
print(f"{n = }") # "n = 10"
この機能を用いてデバッグに活用する方法を見ていきましょう。
可読性と再利用性のための良い書き方
ここでは、Pythonでの関数とf文字列の使用について、コードの可読性と再利用性を高めるためのベストプラクティスをお伝えします。
- コードの可読性を高めるための方法
- 関数とf文字列の再利用性を高めるための方法
コードの可読性を高めるための方法
f文字列を利用するときのベストプラクティスとして、文字列内の複雑な式を避け、読みやすさを確保することが挙げられます。
f文字列内で複雑な計算を行うよりも、先に結果を変数に格納してからその変数を使用する方が、コードは読みやすくなるでしょう。
# おすすめしない方法
print(f"The sum of 2 and 3 is {2 + 3}.")
# おすすめの方法
sum_value = 2 + 3
print(f"The sum of 2 and 3 is {sum_value}.")
関数とf文字列の再利用性を高めるための方法
f文字列は、ほかの文字列操作と組み合わせて、再利用可能な関数を作成するのにも役立ちます。
例えば、特定の形式で日付を出力する関数を作成可能です。
この関数は、日付を引数として受け取り、その日付を"YYYY-MM-DD"
形式で出力します。
from datetime import datetime
def format_date(date: datetime) -> str:
return f"{date.year:04d}-{date.month:02d}-{date.day:02d}"
print(format_date(datetime.now())) # 出力: "2023-06-24"
f文字列を用いることで、機能を再利用するための強力なツールを作れます。
書式指定におけるそのほかのポイント
こちらでは、書式指定に関して、小数点以下の桁数の扱いや%表記の詳細について説明します。
- 小数点以下の桁数の扱い
- %表記の詳細
小数点以下の桁数の扱い
f文字列を使うと、小数点以下の桁数を自由に設定できます。
これは桁数を固定する場合や、指定した桁数に丸めたい場合に便利です。
以下に示すように、:.2f
を使用すると小数点以下2桁に丸めることができます。
value = 3.14159
print(f"Value: {value:.2f}") # Outputs: "Value: 3.14"
%表記の詳細
f文字列では、数値をパーセント表示にすることも可能です。
これは:.2%
のように表記します。
この場合、数値は100倍され、パーセント記号が追加されます。
また、.2
の部分は小数点以下の桁数を示します。
percentage = 0.25
print(f"Percentage: {percentage:.2%}") # Outputs: "Percentage: 25.00%"
f文字列の書式指定は非常に強力で、多様な数値の表示方法を提供します。
まとめ:Pythonと関数、f文字列の力を引き出す
Pythonの関数とf文字列は、コードの簡潔さと読みやすさを大幅に向上させるための強力なツールです。
特にf文字列は、文字列の中に変数や式を埋め込むことを容易にします。
これらの知識はPythonプログラミングの基礎であり、これを理解し活用することでより高度なプログラミングタスクに挑戦できるでしょう。
ただしPythonの学習は、まだまだここで終わりません。
手を動かしながら、興味の湧くものから覚えていくことがおすすめです。