Python:formatメソッドによる変数表示の基本

Python

print関数にformatメソッド使って変数表示をする際の基本的な使い方解説です。

formatメソッドの基本文法

サンプルを例に説明します。

実行イメージ

a = 100

ファイル:format_basic.py

a = 100
print("a = {}".format(a) )

解説

変数aに代入した値を a = 100 と表示するだけのプログラムです。
formatメソッドの引数には、表示したい変数を指定します。(変数aの場合)

format(a)

formatメソッドを利用する際は、”~”などの文字列の後に、. (ピリオド)で連結して使います。(サンプルのprint関数の中身部分)
ピリオドの前後には、スペースを入れてはいけません!

"a = {}".format(a)

{} を記述した場所にformatメソッドで指定した変数の値が挿入されます。
上記サンプルでは、結果として

“a = 100”

という文字列を生成し、print関数で表示しています。

こんなイメージです。

文字列a = {}に対して、format関数が、変数の値を挿入すると同時に、数値型だった変数の内容を文字列に置き換えて a = 100 という文字列を生成しています。formatメソッドを使うことで、str関数などで数値から文字列への変換を行わなくていいというメリットもあります。

formatで複数の変数を指定する

formatメソッドでは、複数の変数を指定できます。
その際、対象となる文字列にformatに指定した変数分の {} を増やせばいいだけです。

実行イメージ

345 + 543 = 888

ファイル名:format_basic1.py

x = 345
y = 543
z = x + y
print("{} + {} = {}".format(x, y, z) )

解説

print関数の文字列に指定した3つの {} とformatメソッドの引数に指定した x, y, zの数は一致させる必要があります。
一番左側の {} 変数xの内容が挿入されます。あとは右に向かって順にy、zと挿入されていきます。

イメージ

{}は実は省略形

実は、以下の記述の {} は省略形でした。

print("{} + {} = {}".format(x, y, z) )

きちんと書くと {} の中に0から始まる番号が入ってこうなります。

print("{0} + {1} = {2}".format(x, y, z) 

formatメソッドに指定した変数は、左から順に0から番号がついています。
上記の場合なら、x, y, z がそれぞれ0, 1, 2と番号がついています。
これは何を意味するのでしょうか?

上記例だとあまり関係ないですが、以下のような場合だと意味を持ちます。

実行イメージ

10 * 2 * 10 = 200

ファイル名:format_basic2.py

# formatメソッドの基本2
x = 10
y = 2
z = x * y * x
print("{0} * {1} * {0} = {2}".format(x, y, z) )

上記print関数では、変数xの表示場所を変えて2回表示しています。

10 * 2 * 10 = 200

このように同じ変数xを2回以上表示させたい場合、 {}内の番号は意味を持ちます。

fomatメソッドを使うメリット

メソッドに関しての簡単な説明は以下。

Pythonで文字列を扱う場合のメソッドにformatがあります。


format()メソッドを使うと、変数の値をprint関数などで表示する際に、文字列の体裁をくずすことなく自然にプログラミング出来るメリットがあります。
サンプルで示します。

format()を使わない場合

x = 345
y = 543
z = x + y
print(str(x) + " + " + str(y) + " = " + str(z) )

4行目:数値変数をprint()関数で表示する場合、str()関数を使って一旦文字列に変換してから連結していますが、プログラムをパッと見てどんな表示になるのか分かりにくい感じです。

format()を使った場合

x = 345
y = 543
z = x + y
print("{} + {} = {}".format(x, y, z) )

変数x, y, zの代入は変わりませんが、4行目のprint関数の中身がかなりすっきりした印象です。{}の位置にformatメソッドで指定した変数x, y, zが順に入ることさえ知っていれば、パッと見て分かるのではないでしょうか?しかもstr関数で変数の数値を文字型に直す必要ありません。明らかにプログラムが簡潔に見えます。これがfomatメソッドを利用するメリットです。(もちろんそれだけではありませんが、最初のうちはこの部分がメリットだと思います)

以上、Pythonのformatメソッドによる変数表示の基本でした。
formatメソッドはもっと便利な利用方法もあります。でもまずはこの基本をマスターしてみてください。

コメント

タイトルとURLをコピーしました