Pythonでformatメソッドを使ってみる

このノートはブロックチェーンを学ぶためのPython3となっていますが、Pythonの勉強ノートでもあるので具体的に何を作りたいか?具体的に何をしたいか?などありません。
ノートを書きながら自分のやりたいことをやっていく形になります

formatメソッドを使ってみる理由
文字列表示をするとき、print関数を使います
※ファイル名format.pyとして保存してます

name2 = 'logw-ログゥ個人的な記録用'
age2 = 2011

print ('サイト名は',name,'です。サイトができたのは',age2,'年です')
#実行
[logw@localhost ~]$ python format.py

サイト名は logw-ログゥ個人的な記録用 です。サイトができたのは 2011 年です

このようになります。半角のスペースが入ってしまいます。半角のスペースを取るには以下のようにコードを変えます

name2 = 'logw-ログゥ個人的な記録用'
age2 = 2011

print ('サイト名は',name,'です。サイトができたのは',age2,'年です', sep="")

違いはsep=""を入れただけになります。

正直、書くのがだるい・・・

自分で書いて思いました。わざわざこんな書き方しないといけないのかーと
さらに、'文字列' , 変数 , '文字列' となっています。カンマで区切ったりするのでミスが増えるかもしれません。
※viエディタだとちょっと辛いとこあります。

変数が増えたら大変・・・
↑のコードでは変数は2つだけですが、もし変数が増えたら面倒です。例えばサイトが生まれてから○○年たちます。などいれようとしたら、変数が1つ必要になりミスも増えます

formatメソッドを使ってみよ!
というわけでいきなりformatメソッドをつかってみようとなります
※ファイル名format.pyとして保存してます

name = 'logw-ログゥ個人的な記録用'
age = 2011

text_template = 'サイト名は{}です。サイトが出来たのは{}年です'
text = text_template.format(name, age)

print (text)
[logw@localhost ~]$ python format.py

サイト名はlogw-ログゥ個人的な記録用です。サイトが出来たのは2011年です

半角スペースもなく、表示されました。

formatメソッドは見やすく作れるためミスを減らせる?
表示の仕方は最終的にはどちらも同じです。formatメソッドは以下のように分けられると思います
・代入したい変数
・テキストのテンプレート
上のコードでは変数:nameとageの二つが代入したい物で、変数text_templeteはテキストのテンプレートになります。テンプレートの変数を代入したいとこだけ{}で空けています。
その後、formatメソッドで文字列を生成してprintで表示しています。

変数が増えても設定が楽

例えば、URLを表示したいと思ったら、formatメソッドを使えば{}をテンプレートに追加して、formatメソッドに変数を追加すれば終わりです。

print関数だけで表示しようとすると、カンマを付けて変数をいれてなどが必要でミスが起きるかもしれません。
※format関数ではミスがおきないわけではないです。
ただ、どちらが更新しやくしてミスが少ないかは一目瞭然かなと思います。formatメソッドは少しやりにくいとこもありますが、今後多様していこうと思っています。

お役に立ちましたか?

投げ銭をいただけるともっと頑張れます!
・note
・仮想通貨(bitflyer)
のどちらでも構いません
ビットコインアドレスは以下になります
3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS

この記事が気に入ったらサポートをしてみませんか?