ブログい¥記事はこちら:python3での文字列フォーマットの方法まとめ
なかなか覚えられなくて、辛かったのでメモしてまとめることにした。記憶への定着が少しでもまともになることを祈って。。
#古いやり方(まだ使われてるけど)
'This is our %s' % 'string'
# This is our string
print('we are learning %s %s' % ('Python', '3'))
# we are learning Python 3
print('we are learning %(lang)s %(ver)s' % {'lang': 'Python', 'ver': '3'})
#we are learning Python 3
#新型 (推奨されてるやり方)
文字列の後ろに formatメソッドをくっつける。
挿入する場所は基本的に **{ }**にて指定する。
'This is our string {}'.format('in Python')
'{} {} {}'.format('a','b','c')
# 'a b c'
'{2} {1} {0}'.format('a','b','c')
#c b a
#インデックスみたいな指定ができる
'we are learning {lang} {ver}'.format(lang = 'Python', version = '3')
#we are learning Python 3
language = ('Python', '3')
'we are learning {0[0]} {0[1]}'.format(language)
#we are learning Python 3
#上級編
formatメソッドを使うんだけど、思ったよりたくさんのことができるらしい。
- 数字をバイナリーに変換
- 左寄せ・右寄せ・中央寄せとかで文字列作成
animal = ('Dog', 'Cat')
name = ('Maggie', 'Missy')
'I have a {0[0]} named {1[0]}'.format(animal,name)
#I have a dog named Maggie
'I have a {0[1]} named {1[1]}'.format(animal,name)
#I have a cat named Missy
'{:<50}'.format('aligned left')
#'aligned left
#50インデックス用意して左詰めで文字入力
'{:a<50}.format('aligned left ')
#'aligned left aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
#上のが見づらいのでaで埋めてみた
'{:>50}'.format('aligned right')
'{:^50}'.format('aligned center')
'{:$^50}'.format('More Money')
#'$$$$$$$$$$$$$$$$$$$$More Money$$$$$$$$$$$$$$$$$$$$'
'Binary: {0:b}'.format(324)
#Binary: 101000100
'{:,}'.format(123456787654321)
#'123,456,787,654,321'
#割り算した結果も表示できるらしい
correct = 78
total = 84
'Your score is: {:.1%}'.format(correct/total)
#'Your score is: 92.9%'
'Your score is: {:.3%}'.format(correct/total)
#'Your score is 92.857%'
壮大なメモ書き。とりあえず頭に入れて使える様になりたい。