Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで%演算子を使った文字列フォーマットの基本と使い方

Pythonでは、文字列を整形(フォーマット)するために複数の方法が用意されています。主な方法は以下の3つです。

  • % 演算子を使う方法
  • {} (formatメソッドやf文字列)を使う方法
  • Template文字列を使う方法

この記事では、その中でも「%」を使った文字列フォーマットについて詳しく解説します。

文字列フォーマットの2つの方式

Pythonの文字列フォーマットには、大きく分けて以下の2つの方式があります。

  • 文字列フォーマット式:C言語のprintfスタイルに基づいた方法(%演算子)
  • 文字列フォーマットメソッド呼び出し:Python 2.6以降で利用可能なstr.format()メソッドなど

%フォーマットで使える主な書式指定子

%を使ったフォーマットはC言語のprintfに由来しており、以下のような型指定子をサポートしています。

  • 整数(10進数): %d または %i
  • 浮動小数点数: %f
  • 文字列: %s
  • 16進数: %x
  • 8進数: %o
  • 生データ(repr表現): %r

基本的な使用例

まずは最もシンプルな例を見てみましょう。文字列の中に%sを埋め込み、%演算子で値を渡します。

>>> name = "Jeff Bezos"
>>> "Richest person in the world is %s" % name
'Richest person in the world is Jeff Bezos'

各書式指定子の動作を確認するサンプルプログラム

次に、代表的な書式指定子の使い方をまとめて確認できるサンプルプログラムを紹介します。

# %s - 文字列として表示
var = '27'  # 文字列として定義
string = 'Variable as string = %s' % var
print(string)

# %r - 生データ(repr表現)として表示
print('Variable as raw data = %r' % var)

# %i - 整数として表示
print('Variable as integer = %i' % int(var))

# %f - 浮動小数点数として表示
print('Variable as float = %f' % float(var))

# %x - 16進数として表示
print('Variable as hexadecimal = %x' % int(var))

# %o - 8進数として表示
print('Variable as octal = %o' % int(var))

実行結果

Variable as string = 27
Variable as raw data = '27'
Variable as integer = 27
Variable as float = 27.000000
Variable as hexadecimal = 1b
Variable as octal = 33

ポイント解説

  • %sは値を文字列に変換して埋め込むため、数値を渡してもそのまま表示されます。
  • %rはrepr()による表現を返すため、文字列の場合は引用符付きで表示されます。
  • %fはデフォルトで小数点以下6桁まで表示されます。桁数を指定したい場合は%.2fのように記述します。
  • %x%oは整数に対してのみ有効なため、事前にint()で変換しています。

なお、現在のPythonでは可読性や柔軟性の観点からf文字列(f-string)やstr.format()が推奨されることが多いですが、レガシーコードの読解や既存システムの保守においては、%フォーマットの理解が依然として重要です。

  1. PythonでのCX_Freezeの使い方:スクリプトを実行ファイル(EXE)に変換する方法

    はじめに 何か面白いものを作りたいという欲求は人間の本能であり、完成したものは誰かに共有したくなるものです。Pythonでもその願いを叶えられます。ただし、作成したPythonスクリプトをそのまま共有するには、相手のマシンにも同じバージョンのPythonと、プログラムで使用しているすべてのモジュールがインストールされている必要があります。 そこで役立つのがCX_Freezeです。このツールを使えば、Pythonがインストールされていない環境でも動作するスタンドアロンの実行ファイル(.exe)を作成できます。 CX_Freezeのインストール まず、コマンドプロンプトで以下のコマンドを実行し、c

  2. Pythonで文字列をJSONに変換する方法|json.loads()の使い方を解説

    PythonでJSON文字列を辞書(dict)に変換する基本Pythonでは、標準ライブラリの json モジュールを使うことで、JSON形式の文字列を簡単に扱うことができます。文字列として渡されたJSONデータをPythonの辞書型に変換するには、json.loads() メソッドを使用します。json.loads() は、有効なJSON文字列を受け取り、それを解析して辞書オブジェクトを返します。返された辞書には、すべての要素にキーを使ってアクセスできます。json.loads()の使用例>>> import json >>> s = {success: