まぬねこの足跡。。。

備忘録+たのしさ+ひっそりと

Python - f文字列

概略

  • python3から導入
  • フォーマット
  • 標準入出力の際、フォーマットに使われる。

文章内に変数を組み込む

「'」「"」どちらでもOK

s = "りんご"
d = "みかん"
print(f'{s}と{d}も、おいしい')

表示イメージ

りんごとみかんも、おいしい

変数=桁数

inte = 123
digit = 6
flot = 123.456789
print(f'{inte:0{digit}}')
print(f'{inte:A={digit}}')
print(f'{flot:{digit}g}')

表示イメージ

000123
AAA123
123.457

基本 書式

f'{ 変数 [!変換オプション]:書式指定文字列 }'

※[]内省略可。

変換オプション

  • s:str()・・・文字列に変換

  ※「f+文字列」は、自動で行うので、必要なし。

  • r:repr()・・・元のオブジェクトの内容を含んで文字列に変換。

  ※デバッグ用。eval()で元オブジェクトに戻せる。

  • a:ascii()・・・reper()後、非ascii文字のみ{\x,\u,\U}で返される。=python2のrepr()と同一。

数字・文字 表記方法

寄せ+文字埋め

# 10ケタ
strg = "あいうえお"
strgA = "ABCD"
print(f'右寄せ(全角) :{strg:*<10}')
print(f'右寄せ    :{strgA:*<10}')
print(f'左寄せ(全角) :{strg:*>10}')
print(f'左寄せ    :{strgA:*>10}')
print(f'両端寄せ(全角):{strg:*^10}')
print(f'両端寄せ   :{strgA:*^10}')

表示イメージ

右寄せ(全角) :あいうえお*****
右寄せ    :ABCD******
左寄せ(全角) :*****あいうえお
左寄せ    :******ABCD
両端寄せ(全角):**あいうえお***
両端寄せ   :***ABCD***

数字 表記方法

桁区切り

inte = 1234567890
print(f'桁区切り:{inte:,}')
print(f'桁区切り:{inte:_}')

表示イメージ

桁区切り:1,234,567,890
桁区切り:1_234_567_890

ゼロ埋め

0+表示桁数

inte = 12345
print(f'ゼロ埋め:{inte:010}')

表示イメージ

ゼロ埋め:0000012345

符号

plus = 22222
minus = -77777
print(f'符号(無) :{plus}')
print(f'符号(無) :{minus}')
# デフォルト
print(f'符号(ー) :{plus:-}')
print(f'符号(ー) :{minus:-}')

print(f'符号(+) :{plus:+}')
print(f'符号(+) :{minus:+}')

print(f'符号(空白):{plus: }') #空白1文字+数値
print(f'符号(空白):{minus: }')

表示イメージ

符号(無) :22222
符号(無) :-77777
符号(ー) :22222
符号(ー) :-77777
符号(+) :+22222
符号(+) :-77777
符号(空白): 22222
符号(空白):-77777

先頭符号+文字埋め+数字

変数:文字=有効桁数

plus = 222
minus = -777
print(f'基本:{plus:10}') 
print(f'基本:{minus:10}') 
print()
print(f'符号(無)(A埋め):{plus:A=10}') 
print(f'符号(無)(A埋め):{minus:A=10}') 
print()
print(f'符号(ー)(A埋め):{plus:A=-10}') 
print(f'符号(ー)(A埋め):{minus:A=-10}') 
print()
print(f'符号(+)(A埋め):{plus:A=+10}') 
print(f'符号(+)(A埋め):{minus:A=+10}') 
print()
print(f'符号(ー)(ゼロ埋め)     :{plus:0=-010}') 
print(f'符号(ー)(ゼロ埋め)(桁前に0):{plus:-010}') 
print(f'符号(ー)(ゼロ埋め)     :{minus:0=-010}') 
print(f'符号(ー)(ゼロ埋め)(桁前に0):{minus:-010}') 
print()
print(f'符号(+)     :{plus:0=+10}') 
print(f'符号(+)(桁前に0):{plus:+010}') 
print(f'符号(+)     :{minus:0=+10}') 
print(f'符号(+)(桁前に0):{minus:+010}') 

表示イメージ

基本:       222
基本:      -777

符号(無)(A埋め):AAAAAAA222
符号(無)(A埋め):-AAAAAA777

符号(ー)(A埋め):AAAAAAA222
符号(ー)(A埋め):-AAAAAA777

符号(+)(A埋め):+AAAAAA222
符号(+)(A埋め):-AAAAAA777

符号(ー)(ゼロ埋め)     :0000000222
符号(ー)(ゼロ埋め)(桁前に0):0000000222
符号(ー)(ゼロ埋め)     :-000000777
符号(ー)(ゼロ埋め)(桁前に0):-000000777

符号(+)     :+000000222
符号(+)(桁前に0):+000000222
符号(+)     :-000000777
符号(+)(桁前に0):-000000777

固定小数点表記

小数桁数デフォルトで6桁。

flot = 0.00123456789
print(f'基本:{flot:}')
print(f'固定小数点表記(f):{flot:f}')
print(f'固定小数点表記(F):{flot:F}')

表示イメージ

基本:0.00123456789
固定小数点表記(f):0.001235
固定小数点表記(F):0.001235

小数桁数

flot = 123.456789
print(f'小数桁数:{flot:.3f}')

表示イメージ

小数桁数:123.457

有効桁数

flot = 123.456789
print(f'有効桁数:{flot:.5g}')

表示イメージ

有効桁数:123.46

指数

flot = 123.456789
print(f'指数(e):{flot:.5e}')
print(f'指数(E):{flot:.5E}')

表示イメージ

指数(e):1.23457e+02
指数(E):1.23457E+02

百分率(%)

小数の有効桁数2+% 表示

flot = 0.123456
print(f'百分率:{flot:.2%}')

表示イメージ

百分率:12.35%

int型

Unicode数で文字表示

変数:c

uni = 65
print(f"Unicode(65='A'):{uni:c}")

表示イメージ

Unicode(65='A'):A

進数

2進数

inte =  255
print(f'2進数(b):{inte:b}')
print(f'2進数・区切り(_b):{inte:_b}')

print(f'2進数・接頭語(#b):{inte:#b}')
print(f'2進数・区切り・接頭語(#_b):{inte:#_b}')

print(f'2進数・ゼロ埋め(012b):{inte:012b}')
print(f'2進数・ゼロ埋め区切り(014_b):{inte:014_b}') #区切り分の桁を追加

print(f'2進数・接頭語・ゼロ埋め(#012b):{inte:#012b}')
print(f'2進数・区切り・接頭語・ゼロ埋め(#014_b):{inte:#014_b}') #区切り分の桁を追加
表示イメージ
2進数(b):11111111
2進数・区切り(_b):1111_1111
2進数・接頭語(#b):0b11111111
2進数・区切り・接頭語(#_b):0b1111_1111
2進数・ゼロ埋め(012b):000011111111
2進数・ゼロ埋め区切り(014_b):0000_1111_1111
2進数・接頭語・ゼロ埋め(#012b):0b0011111111
2進数・区切り・接頭語・ゼロ埋め(#014_b):0b00_1111_1111

8進数

inte = 65535
print(f'8進数(o):{inte:o}')
print(f'8進数・区切り(_o):{inte:_o}')

print(f'8進数・接頭語(#o):{inte:#o}')
print(f'8進数・区切り・接頭語(#_o):{inte:#_o}')

print(f'8進数・ゼロ埋め(012o):{inte:012o}')
print(f'8進数・ゼロ埋め区切り(014_o):{inte:014_o}') #区切り分の桁を追加

print(f'8進数・接頭語・ゼロ埋め(#012o):{inte:#012o}')
print(f'8進数・区切り・接頭語・ゼロ埋め(#014_o):{inte:#014_o}') #区切り分の桁を追加
表示イメージ
8進数(o):177777
8進数・区切り(_o):17_7777
8進数・接頭語(#o):0o177777
8進数・区切り・接頭語(#_o):0o17_7777
8進数・ゼロ埋め(012o):000000177777
8進数・ゼロ埋め区切り(014_o):0000_0017_7777
8進数・接頭語・ゼロ埋め(#012o):0o0000177777
8進数・区切り・接頭語・ゼロ埋め(#014_o):0o00_0017_7777

10進数

inte = 65535
print(f'10進数(d):{inte:d}')
print(f'10進数・区切り(_d):{inte:_d}')

print(f'10進数・接頭語(#d):{inte:#d}')
print(f'10進数・区切り・接頭語(#_d):{inte:#_d}')

print(f'10進数・ゼロ埋め(012d):{inte:012d}')
print(f'10進数・ゼロ埋め区切り(014_d):{inte:014_d}') #区切り分の桁を追加

print(f'10進数・接頭語・ゼロ埋め(#012d):{inte:#012d}')
print(f'10進数・区切り・接頭語・ゼロ埋め(#014_d):{inte:#014_d}') #区切り分の桁を追加

表示イメージ

10進数(d):65535
10進数・区切り(_d):65_535
10進数・接頭語(#d):65535
10進数・区切り・接頭語(#_d):65_535
10進数・ゼロ埋め(012d):000000065535
10進数・ゼロ埋め区切り(014_d):00_000_065_535
10進数・接頭語・ゼロ埋め(#012d):000000065535
10進数・区切り・接頭語・ゼロ埋め(#014_d):00_000_065_535

16進数 英小文字

inte = 65535
print(f'16進数(x):{inte:x}')
print(f'16進数・区切り(_x):{inte:_x}')

print(f'16進数・接頭語(#x):{inte:#x}')
print(f'16進数・区切り・接頭語(#_x):{inte:#_x}')

print(f'16進数・ゼロ埋め(012x):{inte:012x}')
print(f'16進数・ゼロ埋め区切り(014_x):{inte:014_x}') #区切り分の桁を追加

print(f'16進数・接頭語・ゼロ埋め(#012x):{inte:#012x}')
print(f'16進数・区切り・接頭語・ゼロ埋め(#014_x):{inte:#014_x}') #区切り分の桁を追加
表示イメージ
16進数(x):ffff
16進数・区切り(_x):ffff
16進数・接頭語(#x):0xffff
16進数・区切り・接頭語(#_x):0xffff
16進数・ゼロ埋め(012x):00000000ffff
16進数・ゼロ埋め区切り(014_x):0000_0000_ffff
16進数・接頭語・ゼロ埋め(#012x):0x000000ffff
16進数・区切り・接頭語・ゼロ埋め(#014_x):0x00_0000_ffff

16進数 英大文字

inte = 65535
print(f'16進数(X):{inte:X}')
print(f'16進数・区切り(_X):{inte:_X}')

print(f'16進数・接頭語(#X):{inte:#X}')
print(f'16進数・区切り・接頭語(#_X):{inte:#014_X}')

print(f'16進数・ゼロ埋め(012X):{inte:012X}')
print(f'16進数・ゼロ埋め区切り(014_X):{inte:014_X}') #区切り分の桁を追加

print(f'16進数・接頭語・ゼロ埋め(#012X):{inte:#012X}')
print(f'16進数・区切り・接頭語・ゼロ埋め(#014_X):{inte:#014_X}') #区切り分の桁を追加
表示イメージ
16進数(X):FFFF
16進数・区切り(_X):FFFF
16進数・接頭語(#X):0XFFFF
16進数・区切り・接頭語(#_X):0X00_0000_FFFF
16進数・ゼロ埋め(012X):00000000FFFF
16進数・ゼロ埋め区切り(014_X):0000_0000_FFFF
16進数・接頭語・ゼロ埋め(#012X):0X000000FFFF
16進数・区切り・接頭語・ゼロ埋め(#014_X):0X00_0000_FFFF

参考

一般的な文字列操作