Python formatのあれこれ

Python

今回の記事では、Pythonのformatについてまとめていきます。

ハム
ハム

format」って何?

かるでね
かるでね

fotmat」は出力を綺麗にしてくれるものだよ!

っと言われてもパットは理解できないと思うので、実際にみてみながら確認していきましょう。

formatをみてみる

まずは「format」がどんなものなのかをみていきましょう。

name = "かるでね"
print("私の名前は{}です。".format(name))   # 私の名前はかるでねです。

このように使います。

よく変数と文字列を使用するときは以下のように出力するのも見かけると思います。

name = "かるでね"
print("私の名前は" + name + です。)   # 私の名前はかるでねです。

これでももちろん出力はされるのですが、「format」を使用した時と比べて見にくいです。

他にも「format」を使用するメリットはあるので、順番に見ていきましょう。

複数の変数を扱う

先ほどは変数が1つでしたが、今度は複数用意してみましょう。

name = "かるでね"
age = 21
like = "Python"

print("私の名前は{}です。年齢は{}歳です。{}が好きです。".format(name, age, like))   
# 私の名前はかるでねです。年齢は21歳です。Pythonが好きです。

print("私の名前は" + name + "です。年齢は" + age + "歳です。" + like + "が好きです。")  
# 私の名前はかるでねです。年齢は21歳です。Pythonが好きです。

上と下を見比べてみるとみやすさがだいぶ違いませんか?

そしてコードを書くときも「format」を使用した方が書きやすいです。

番号で指定

同じ引数を複数回使用するときはどのようにすると良いでしょう?

name = "かるでね"
age = 21
like = "Python"

print("私の名前は{0}です。私の名前は{0}です。私の名前は{0}です。".format(name, age, like))   
# 私の名前はかるでねです。私の名前はかるでねです。私の名前はかるでねです。

print("私の名前は{0}です。私の名前は{0}です。私の名前は{0}です。".format(name))    # ②
# 私の名前はかるでねです。私の名前はかるでねです。私の名前はかるでねです。

答えは番号で指定すれば簡単にできます。

②のように引数が1つでも、番号を指定することで適用できます。

番号は引数の1つ目なら「0」、2つ目なら「1」のように、インデックス番号と同じ数え方をしてください。

では番号指定でもう少し遊んでみましょう。

name = "かるでね"
age = 21
like = "Python"

print("私の名前は{0}です。{2}が好きです。年齢は{1}です。".format(name, age, like))   
# 私の名前はかるでねです。Pythonが好きです。年齢は21です。

このように番号を好きなように振ることができます。

コードを修正するときも簡単ですね!

キーワード指定

「番号だと正直ぱっと見でわかりにくい!」とういう方に朗報です。

なんとキーワードでも指定することができます。

早速みてみましょう。

name = "かるでね"
like = "Python"

print("私の名前は{name}です。{like}が好きです。".format(name=name, like=like))   
# 私の名前はかるでねです。Pythonが好きです。

こっちの方がよりわかりやすいですね。

変数を用意しないで直せつキーワードに指定することもできます。

print("私の名前は{name}です。{like}が好きです。".format(name="かるでね", like="Python"))   
# 私の名前はかるでねです。Pythonが好きです。

これでもできますが、先ほどの方がわかりやすいので個人開発以外ではやらないようにしましょう。

もっと簡単に書こう

format」の欠点としてちょっとコードが長くなってしまうことが挙げられます。

なのでその欠点を克服していきましょう。

name = "かるでね"
like = "Python"

print(f"私の名前は{name}です。{like}が好きです。")   
# 私の名前はかるでねです。Pythonが好きです。

めちゃくちゃ短くなりましたね!

こちらの方が短くて良いですが、「fotmat」がついている方が明示的でわかりやすいので、人に見せる際にはできる限り「format」を使用しましょう。

応用

小数点

ちょっとした応用をみていきましょう。

import math

pi = math.pi

print("円周率: {pi:.2f}".format(pi=pi))   # 円周率: 3.14
print("円周率: {pi:.3f}".format(pi=pi))   # 円周率: 3.142
print("円周率: {pi:.5f}".format(pi=pi))   # 円周率: 3.14159

小数点以下がある浮動小数点型を使用するとき、小数点以下第何位まで表示するかを指定することができます。

表示を抑制したいとにはぜひ活用してください!

カンマ区切り

値段を表示するときに後ろから3桁ごとにカンマで区切ることができます。

prace1 = 10000000
prace2 = 100000000000000

print("prace1: {:,}".format(prace1))   # prace1: 10,000,000
print("prace2: {:,}".format(prace2))   # prace2: 100,000,000,000,000

みやすくて良いですね!

%

%」を使った表示を見かけることが今後あると思います。

基本的に「format」と使い方は同じなので、ここで確認しておきましょう。

name = "かるでね"
like = "Python"

print("私の名前は%sです。" % name)   # 私の名前はかるでねです
print("私の名前は%sです。%sが好きです。" % (name, like))   # 私の名前はかるでねです。Pythonが好きです。

使い方がほとんど同じだということを確認できたと思います。

format」の方が後にできたものなので、少し昔のコードをみたりすると出てくる可能性があります。

その時に戸惑わないように落ち着いて読み解きましょう。

最後に

今回は「fotmat」について確認してきました。

pythonで何か作るにしても、機械学習をやるにしても「fotmat」は使われるので今後は積極的に使用していきましょう。

今後も記事を更新していくので、よければのぞいていってください!

Twitterでもお役立ち情報を発信しているのでぜひ!

それでは!

コメント

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