LoginSignup
8
5

More than 5 years have passed since last update.

Pythonのフォーマット文字列の桁数部を可変にする方法

Last updated at Posted at 2018-05-26

Pythonのフォーマット文字列の桁数部を可変にする方法についてまとめます。

前提

1〜100までの数字を右揃えで表示したいとします。

  1
  2
...
 10
...
100

この場合、以下のように記述することで実現できます。

# 数字を出力
for i in range(100):
    print('{:3d}'.format(i + 1))

本題

上の例で、表示する最大の数字を決め打ちできない場合に、フォーマット文字列を指定する方法としては、以下のようなものがあります。

方法1

import sys

# 数字の最大値 (標準入力より取得)
max_number = int(sys.stdin.readline())

# 数字の表示幅(最大値の桁数に合わせる)
width_number = len(str(max_number))

# 数字を出力
for i in range(max_number):
    print('{number:{width}d}'.format(number=i + 1, width=width_number))

方法2 (Python 3.6以降)

import sys

# 数字の最大値 (標準入力より取得)
max_number = int(sys.stdin.readline())

# 数字の表示幅(最大値の桁数に合わせる)
width_number = len(str(max_number))

# 数字を出力
for number in range(max_number):
    print(f'{number + 1:{width_number}d}')

参考文献

8
5
17

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5