python::format文がめっちゃ便利!(1)
#python #print #format
#2020/7/31 #2020/7
print()で出力文字列の体裁を整えたい時に使う
python3.6以前は,hogehoge.formatという形式 ◀◀ ちょい面倒
3.6以降は,それに加えて f"hoge{value:>02}"みたいな書き方が
◀◀ これが便利!
こちらも続けてお読みください:python::format文が便利すぐる(2)
◆例:a,b,cという変数をprint()する.
code:python
a,b,c=123,4.56,"hoge"
print("変数a="+str(a))
print("変数b="+str(b))
print("文字列c=" + c)
文字列と数値が混在している場合,カンマで変数を分離すれば,並べてprint()することは可能.
ただし,値の間に必ず半角空白ができてしまう.
全部を文字列として結合すれば,空白の制御は可能:int型/float型は,str(a)で文字列に変換する必要がある.
出力は ▼▼
https://gyazo.com/47c383db70fa17f20a875d7fc723753a
これをもうちょっと見栄え良くしたい.
"="を縦に揃えたい
数値を右寄せで,1の位で揃えたい
そのためにformat文をつかった記述がこれ ▼▼
code:python
print(f"{'変数a':<6}= {a:>3}")
print(f"{'変数b':<6}= {b:>6.3}")
print(f"{'文字列c':<5}= {c:<}")
ただし,pythonでは全角のカウントが2ではなく1なので,上でも微妙にずれてたりする.
https://gyazo.com/7a3b1f127977a55b77432be47c0d665e
全角は全角空白で合わせるのが現実的かな.美しくはないけど. ▼▼
code:python
print(f"{'変数a '} = {a:>3}")
print(f"{'変数b '} = {b:>6.3}")
print(f"{'文字列c'} = {c:<}")
これだと,こうなる ▼▼
https://gyazo.com/a9bf86a5b1b775f7bf03a4d4ae74388c
※pythonって,全角も1文字勘定するのね……悲報
これって,全角半角まぜこぜの文字列整形にとって致命的!
が,解決方法がなくもない. ▶▶unicodedata モジュール!
Pythonで半角1文字、全角2文字として文字数(幅)カウント | note.nkmk.me
Pythonのunicodedataライブラリを使って、全角文字も半角文字も揃えて表示する - Qiita
でもこれ,format文じゃないし.
▶▶python::format文が便利すぐる(2)