pythonの%の意味/演算子

pythonの%ってなに?

Pythonの%は、print文のformat用

Pythonのコードに突如出現する「%」記号。初見だと意味がわからないし、読み方も調べ方もわからないので混乱するんですよね。

%の使われ方には、大きく2つあります。

剰余演算子として使われる場合と、print分のフォーマット文字列に値を埋め込む指定の場合です。

pythonの%記号は、演算子として使われるときは「剰余演算子(modulo)」で、与えられた数値を割った余りを求めるのに使われます。

関連)Pythonのあまり

もう一つは、print文で変数の内容をフォーマット文字列に埋め込むのに使う記号。

name = "John"
print("Hello, %s!" % name)

# 出力:Hello, John!

上記の例だと、”Hello, %s”の%sの部分に変数nameを埋め込むという意味になります。

複数の変数を指定するときには、カッコが必要になるので扱いにはちょっと注意が必要。

a = 10
b = 20
c = 30

print("a = %d, b = %d, c = %d" % (a, b, c))

# 出力:a = 10, b = 20, c = 30

%sや%dは埋め込む値の型によって変化します。

  • %s:文字列型
  • %d:数値型
  • %f:浮動少数

数値を指定すると、桁数指定が可能です。

%sは文字列フォーマット指定子です。桁数を指定して文字列を出力する場合は、以下のようにします。

name = "John Doe"
print("My name is %.10s" % name)

# 出力:My name is John Doe

%dは整数フォーマット指定子です。桁数を指定して整数を出力する場合は、以下のようにします。

num = 12345
print("My number is %.4d" % num)

# 出力:My number is 0123

%fは浮動小数点フォーマット指定子です。桁数を指定して浮動小数点を出力する場合は、以下のようにします。

pi = 3.14159265
print("The value of pi is %.4f" % pi)

# 出力:The value of pi is 3.1416

このへん、公式ドキュメントのどこを探せば掲載されているのか、よくわからないんですよね…。

しらべまくった結果、以下のページに掲載されていました。python公式ドキュメントの「printf形式の文字列書式化」に指定師の使い方が記載されています。

関連 組み込み型 — Python 3.11.1 ドキュメント