※記事内に商品プロモーションを含むことがあります。
はじめに
Python 3.6で実装されたf-stringsと呼ばれる数字や文字列の表記法について、学術計算で最低限必要な範囲でまとめた。
本記事では、整数・小数の桁数指定や、指数表示を扱う。
f-stringsの基本
f-stringsでは、変数の桁数などを指定してprint
文による表示やファイル保存できる。
基本的な使い方は以下の通り。
1
2
3
4
5
|
>>> a = 123 # 変数
>>> print(f"{a}") # フォーマット指定なし
123
>>> print(f"{a:08.2f}") # フォーマット指定あり
00123.00
|
f
の後にクオーテーションを2つ置き、その中で波括弧を閉じる。
波括弧内に変数を記述する。
オプションで、変数の後にコロン:
を挟んでフォーマットを指定する。
なお、クオーテーションは、シングルクォート'
でもダブルクォート"
でも可。
全体の桁数を指定する場合
書式フォーマットを整数にすると、数値全体の桁数を指定できる。
小数点は1桁として扱われる。
先頭を0埋めする場合は、最初に0を置く。
1
2
3
4
5
6
7
8
9
10
11
|
>>> a = 123 # 整数
>>> print(f"{a:5}") # 5桁で表示
123
>>> print(f"{a:05}") # 0埋め
00123
>>>
>>> b = 12.3456 # 小数
>>> print(f"{b:10}") # 10桁で表示
12.3456
>>> print(f"{b:010}") # 0埋め
00012.3456
|
なお、変数よりも少ない桁数を指定すると、変数を最低限表示するのに必要な桁数で表示される。
1
2
3
4
5
6
7
|
>>> a = 123 # 3桁の整数
>>> print(f"{a:1}") # 1桁に指定->3桁で表示される
123
>>>
>>> b = 12.3456 # 7桁の小数
>>> print(f"{b:2}") # 2桁に指定->7桁で表示される
12.3456
|
小数点以下の桁数を指定する場合
書式フォーマットの末尾にf
を追加すると、小数点以下の桁数を指定できる。
.[数値]f
とすると小数点以下の桁数が数値になる。
変数が整数型でも小数型でも同じ動作をする。
また、小数の末尾は四捨五入される。
小数点を含む全体の桁数をさらに指定する場合、小数点の前に記述する。
先頭を0埋めする場合は、さらに最初に0を置く。
ただし、小数点以下の桁数を0にすると、小数点は出力されない。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
>>> a = 123 # 整数
>>> print(f"{a:.2f}") # 小数点以下2桁
123.00
>>> print(f"{a:8.2f}") # 小数点以下2桁、全体は8桁
123.00
>>> print(f"{a:08.2f}") # さらに先頭を0埋めする
00123.00
>>> print(f"{a:08.0f}") # 小数点以下0桁
00000123
>>>
>>> b = 12.3456 # 小数
>>> print(f"{b:.2f}") # 小数点以下2桁
12.35
>>> print(f"{b:8.2f}") # 小数点以下2桁、全体は8桁
12.35
>>> print(f"{b:08.2f}") # さらに先頭を0埋めする
00012.35
>>> print(f"{b:08.0f}") # 小数点以下0桁
00000012
|
指数表示の場合
書式フォーマットの末尾にe
またはE
を追加すると、指数表示になる。
表示される指数記号の大文字・小文字は、書式フォーマットと同じになる。
デフォルトの表示桁数は12桁(指数部分込み)でである。
変数が整数型でも小数型でも同じ動作をする。
1
2
3
4
5
6
7
8
9
10
11
|
>>> a = 123 # 整数
>>> print(f"{a:e}") # 小文字
1.230000e+02
>>> print(f"{a:E}") # 大文字
1.230000E+02
>>>
>>> b = 12.3456 # 小数
>>> print(f"{b:e}") # 小文字
1.234560e+01
>>> print(f"{b:E}") # 大文字
1.234560E+01
|
桁数の指定はf
と同じ方法。
.[数値]e
, .[数値]E
とすると小数点以下の桁数が数値になる。
また、小数の末尾は四捨五入される。
小数部と指数部を含む全体の桁数をさらに指定する場合、小数点の前に記述する。
先頭を0埋めする場合は、さらに最初に0を置く。
ただし、小数点以下の桁数を0にすると、小数点は出力されない。
1
2
3
4
5
6
7
8
9
|
>>> a = 123 # 整数
>>> print(f"{a:.3e}") # 小数点以下3桁
1.230e+02
>>> print(f"{a:10.3e}") # 小数点以下3桁、全体は10桁
1.230e+02
>>> print(f"{a:010.3e}") # さらに先頭を0埋めする
01.230e+02
>>> print(f"{a:10.0e}") # 小数点以下0桁
1e+02
|
複数の変数や通常の文字列も表示する
1個のf-strings内に、複数の変数を表示できる。
1
2
3
4
|
>>> a = 123
>>> b = 12.3456
>>> print(f"{a}{b}")
12312.3456
|
上記のように変数を並べるとスペースが付かず、見づらい。変数ではない文字列を表示したい場合は、波括弧の外側に文字列を置く。
1
2
3
4
|
>>> a = 123
>>> b = 12.3456
>>> print(f"figure1: {a}, figure2: {b}")
figure1: 123, figure2: 12.3456
|
参考
f-stringsの詳細をより知りたい方は、以下のページを参考のこと。
Python, formatで書式変換(0埋め、指数表記、16進数など) | note.nkmk.me
f-strings の使用例 - Qiita