python f’’とformat()と%書式指定子

python3種類の書式指定、(更にformat()と .format()は違うもの)

2019年11月の時点で、3種類の書式方法が混在している。

‘ %s ‘ % (str ) # Cとかと共通の汎用性の高い書き方だが、pythonでは廃止の方向
‘ {} ‘.format(str) #python 2.6以降で使用可能、.があるので各オブジェクトのメソッドなのだろうか
f ‘ {str} ‘ #python 3.6以降で使用可能、↑の短縮形で書きやすく読みやすくわかりやすい。


name=’聖徳太子’
print(‘私の名前は%sです。’ % name)
print(‘私の名前は{}です。’.format(name))
print(f’私の名前は{name}です。’)

3つとも結果は
私の名前は聖徳太子です。

1 %書式指定

いずれ廃止の方向なので、これから学習する人は無理して使う必要はない

2 format

format()と .format()はぜんぜん違うものです。

format()は組み込み関数

print(format(69632,’0>8x’) ) # 数字を8桁の16進数
#00011000

.format()はメソッド

文字列を作るformatは .formatのメソッドの方です

‘文字列’.format()の場合は、strクラスの中で定義されている、文字列専用のメソッドです。
int.format()であれば、intクラス内で別途定義されています。

使い方は、マニュアルを見て覚えていくということでしょう。

 

bun=’なむあみだぶつ’

print(‘無心で唱える{}’.format(bun))

 

3 フォーマット済み文字列リテラル

f’{}’

https://www.javadrive.jp/python/string/index24.html