[Python] 20. stringフォマード(Formatting)と補間法(interpolation)


Study / Python    作成日付 : 2020/06/23 19:03:21   修正日付 : 2020/06/23 19:03:21

こんにちは。明月です。


この投稿はPythonでstringフォーマッティング(Formatting)と補間法(interpolation)に関する説明です。


stringフォーマッティングは定数タイプなどを文字列タイプに変換することやstringのデータタイプにstringの値を入れるような方法です。

フォーマッティングはパーセント(%)を利用します。パーセント(%)の前はformat文字列、後は置換する値を設定します。

最終結果はイコールで左の変数に格納されます。

# フォーマッティング
# worldのデータが%sに置換する。
data = "hello %s" % "world"
# コンソール出力
print(data)


フォーマッティングの文字列で置換領域もパーセント(%)で区分します。そしてパーセント(%)の後は置換値のタイプによるコードを入力します。

置換値は複数(2個以上)ならタプルで入力します。

コード 説明
%s 文字列(String)
%c 文字一つ(character)
%d 定数(Integer)
%f 浮動小数点(floating-point)
%o 8進数
%x 16進数
# フォーマッティング、%dは数字、%sは文字列です。
data = "The humidity is %d%% in %s" % (10, 'Now')
# コンソール出力
pritn(data)


stringタイプでフォーマッティングではなく本当にパーセント(%)を使いたい時があります。その時にはパーセント(%)を二つ入れることで入力します。

pythonはフォーマッティングで文字列整列も可能です。

# 10間の文字列空間を右揃えにする。 もし10間以上になると整列を取り消しする。
print("^^^%10s$$$" % "hello!")
# 10間の文字列空間を左揃えにする。もし10間以上になると整列を取り消しする。
print("^^^%-10s$$$" % "hi!")
# 10間の文字列空間を右揃えにする。 もし10間以上になると整列を取り消しする。(定数タイプ)
print("^^^%10d$$$" % 12)
# 10間の文字列空間を右揃えにする。空間は0にする。(定数タイプ)
print("^^^%010d$$$" % 12)
# 10間の文字列空間を右揃えにする。そして実数の小数点4番目まで表現する。もし10間以上になると整列を取り消しする。(実数タイプ)
print("^^^%10.4f$$$" % 12.1)
# 10間の文字列空間を右揃えにする。そして実数の小数点4番目まで表現する。空間は0にする。(実数タイプ)
print("^^^%010.4f$$$" % 12.1)


補間法とはフォーマッティングする文法でもっと見やすくするための文法です。

例えば置換するデータが多い時に置換場所を迷う時があります。

# 変数宣言
data1 = 'hello'
data2 = 'world'
data3 = 'int'
data4 = 10
data5 = 'float'
data6 = 11.1
data7 = 'type'
# 一般フォーマッティングをコンソールに出力する。
print('%s %s %s %s = %d %s %s = %f' % (data1,data2,data3,data7,data4,data5,data7,data6))
# 補間法をコンソールに出力する。
print(f'{data1} {data2} {data3} {data7} = {data4} {data5} {data7} = {data6}')


補間法は文字列の表現するダブルクォートやクォートの前でfを付けます。そうすると領域中では中括弧で直接にフォーマッティングを作成することができます。

# 変数宣言
data = "hello";
# {の表示は{{、}の表示は}}にする。補間法は{data}でdataの変数の値を出力する。
print(f'{{{data}}}')
# 10間の文字列空間を右揃えにする。 もし10間以上になると整列を取り消しする。
print(f'^^^{data:>10}$$$')
# 10間の文字列空間を左揃えにする。もし10間以上になると整列を取り消しする。
print(f'^^^{data:<10}$$$')
data = 12.3
# 文字列に整列をする。(整列や0置換は上のフォーマッティングと同じ)
print(f'^^^{data:10.4f}$$$')


stringフォマード(Formattingと補間法(interpolation)に関して各長所、短所がありますが、私の場合は補間法(interpolation)のほうが見やすいのでよく使います。


ここまでPythonでstringフォマード(Formatting)と補間法(interpolation)に関する説明でした。


ご不明なところや間違いところがあればコメントしてください。

最新投稿