【簡単】Pythonで0埋めを実装|さまざまな手法を実例付きで紹介

※本サイトにはプロモーション・広告が含まれています。

(最終更新日:2023年6月)

✔このような方へ向けて書かれた記事となります

「Pythonで0埋めをどのように実装するのだろうか?」
「Pythonで0埋めのコードが知りたい」
「Pythonの0埋めの実例が見たい」

✔当記事を通じてお伝えすること

  • Pythonにおける0埋めの基本
  • Pythonで0埋めのコードの書き方やその応用
  • Pythonにおける0埋めの実例

当記事では、Pythonで0埋めを行う基本から、さまざまな方法を活用した実装例まで、具体的なコードを用いて詳しく解説しています。

ぜひ最後までご覧ください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

0埋めとは

こちらでは、「0埋め」という技術について詳しく解説します。

具体的には次のトピックを探求します。

  • 0埋めの目的・効果
  • 0埋めが必要になる状況

0埋めの目的・効果

0埋めとは、文字列や数値を一定の長さに揃えるためのテクニックのことを指します。

データの一貫性を保ち、処理の統一性を確保するために非常に有用です。

一定の長さを保つことにより、データはより可読性が高まり、扱いやすくなります。

# 0埋めの例
num1 = '000123'
num2 = '009876'

# 非0埋めの例
num3 = '123'
num4 = '9876'

データの見栄えを良くするだけでなく、一定のフォーマットに従う必要がある場合や、数値を揃えて比較する必要がある場合など、さまざまなシーンで活用できます。

0埋めが必要になる状況

0埋めが必要になる具体的な状況としては、ファイル名の連番を生成する場合や、データを整形するときなどが挙げられます。

システムによっては9と100では、1から始まる100を先にしてしまう場合があるのです。

また、数値データを一定の桁数に揃えることで、比較や分析がしやすくなり、データの見た目の一貫性を保てます。

分析結果の信頼性が向上するでしょう。

主要な0埋め方法の紹介

「0埋め」の方法を紹介します。

Pythonの0埋めには、複数の方法があり、それぞれ特徴があるからです。

  • zfill()関数:右寄せ0埋め
  • rjust(), center(), ljust()関数:位置指定による0埋め
  • format()関数とf文字列:任意の書式変換による0埋め
  • %演算子:文字列に対する0埋め

zfill()関数:右寄せ0埋め

Pythonの文字列型のメソッドであるzfill()関数は、指定した桁数になるまで文字列の左側(先頭)に0を追加します。

すでに指定した桁数以上の長さがある場合は、元の文字列をそのまま返します。

これは主に右寄せの0埋めをおこなう際に利用されます。

number = "42"
padded_number = number.zfill(6)
print(padded_number)  # 結果: "000042"

long_number = "123456789"
padded_long_number = long_number.zfill(6)
print(padded_long_number)  # 結果: "123456789"

rjust(), center(), ljust()関数:位置指定による0埋め

rjust(), center(), ljust()は、それぞれ文字列を右寄せ、中央寄せ、左寄せにする関数です。

これらの関数を利用すると、文字列の長さを一定に保つとともに、指定した位置に対して0埋めをおこなえます。

text = "Hello"
padded_text_rjust = text.rjust(10, "0")
padded_text_center = text.center(10, "0")
padded_text_ljust = text.ljust(10, "0")

print(padded_text_rjust)   # 結果: "00000Hello"
print(padded_text_center)  # 結果: "00Hello000"
print(padded_text_ljust)   # 結果: "Hello00000"

format()関数とf文字列:任意の書式変換による0埋め

format()関数やf文字列を利用すると、任意の書式変換が可能です。

指定した桁数だけ0埋めを行うだけでなく、小数点以下の桁数を揃えるといった複雑な操作も可能となります。

# format()関数を使用した書式変換
value = 123.456
formatted_value = format(value, "0>10.2f")
print(formatted_value)  # 結果: "0000123.46"

# f文字列を使用した書式変換
name = "Alice"
age = 25
formatted_string = f"Name: {name:<10}, Age: {age:03}"
print(formatted_string)  # 結果: "Name: Alice     , Age: 025"

%演算子:文字列に対する0埋め

%演算子を利用すると、文字列に対する0埋めが可能。

特に、書式指定子を用いることで、さまざまな書式の0埋めを柔軟に実装できます。

# %演算子を使用した0埋め
value = 42
formatted_value = "%05d" % value
print(formatted_value)  # 結果: "00042"

# 書式指定子を用いた0埋め
name = "Bob"
age = 30
formatted_string = "Name: %-10s, Age: %03d" % (name, age)
print(formatted_string)  # 結果: "Name: Bob       , Age: 030"

zfill()関数の使い方

Pythonの文字列型のメソッドであるzfill()関数について詳しく説明します。

この関数は、指定した桁数に達するまで文字列の左側に0を追加するものです。

  • zfill()関数の基本
  • 0埋めを行うコード例

zfill()関数の基本

zfill()関数は、Pythonの文字列型に備わっているメソッドです。

文字列の左側(先頭)に0を追加して、指定した桁数になるようにします。

この関数の使い方は以下の通りです。

文字列.zfill(桁数)

たとえば3桁の数字を必要とする場合、1桁や2桁の数字に対しては左側に0を追加する必要があります。

"7".zfill(3)  # "007"となる
"10".zfill(3)  # "010"となる

0埋めを行うコード例

それでは、zfill()関数を用いた0埋めの具体的なコード例を見てみましょう。

以下に、1から10までの整数を3桁に0埋めした結果を出力するコードを示します。

for i in range(1, 11):
    print(str(i).zfill(3))

このコードを実行すると、以下のように1から10までの数値が3桁の文字列として出力されます。

001
002
003
...
010

このようにzfill()関数を使用することで、桁数を揃えた0埋めを簡単に実現できるのです。

位置指定による0埋め

ここでは、文字列の左側、中央、右側を0で埋める方法を解説します。

これらは特定の文字列の長さを調整したいときに便利です。

  • rjust()関数
  • center()関数
  • ljust()関数
  • コード例

rjust()関数

rjust()関数は、文字列を右寄せにし、指定した幅に満たない部分を特定の文字(デフォルトは空白)で埋めます。

ここでは、この文字を0に変更することで0埋めを行います。

"7".rjust(3, "0")  # 結果:"007"

center()関数

center()関数は、文字列を中央寄せにし、指定した幅に満たない部分を特定の文字(デフォルトは空白)で埋めます。

同様に、この文字を0に変更することで0埋めを行います。

"7".center(3, "0")  # 結果:"070"

ljust()関数

ljust()関数は、文字列を左寄せにし、指定した幅に満たない部分を特定の文字(デフォルトは空白)で埋めます。

ここでも、この文字を0に変更することで0埋めを行います。

"7".ljust(3, "0")  # 結果:"700"

コード例

以下に、これらの関数を使ったコード例を示します。

# rjust()
print("7".rjust(3, "0"))  # 結果:"007"

# center()
print("7".center(3, "0"))  # 結果:"070"

# ljust()
print("7".ljust(3, "0"))  # 結果:"700"

これらの関数を使用すれば、任意の位置に0を追加できます。

format()関数とf文字列を用いた0埋め

ここでは、format()関数とf文字列を使用した0埋め方法を紹介します。

これらは0埋めだけでなく、他の書式変換も可能です。

  • format()関数の基本
  • f文字列の基本
  • コード例

format()関数の基本

format()関数はPythonの組み込み関数で、さまざまな形式の文字列の変換をおこなえます。

以下のコードは、0埋めを行う基本的な使用例です。

print(format(7, '03'))  # 結果:"007"

’03’の部分が書式指定子で、0は埋める文字を、3は全体の桁数を表しています。

f文字列の基本

f文字列(フォーマット済み文字列リテラル)は、Python 3.6から導入された機能で、文字列内で直接変数の値を参照したり、書式を指定したりできます。

以下のコードは、0埋めを行う基本的な使用例です。

num = 7
print(f'{num:03}')  # 結果:"007"

ここでは{num:03}の部分で、変数numの値を全体の桁数が3桁になるように0埋めしています。

コード例

以下に、これらの関数を使ったコード例を示します。

# format()関数
print(format(7, '03'))  # 結果:"007"

# f文字列
num = 7
print(f'{num:03}')  # 結果:"007"

これらの関数を使用すれば、複雑な0埋めや書式変換も簡単におこなえます。

%演算子を用いた0埋め

この部分では、Pythonの%演算子を用いた0埋め方法を紹介します。

これは、より古いバージョンのPythonでも使用可能な方法であり、長く使用されてきた書式設定の手段です。

  • %演算子の基本
  • コード例

%演算子の基本

%演算子は、C言語のprintfスタイルの書式指定をおこなえます。

以下のコードは、0埋めを行う基本的な使用例です。

print("%03d" % 7)  # 結果:"007"

ここでは、”%03d”が書式指定子で、%の後の0は埋める文字を、3は全体の桁数を、dは整数を表すフォーマット指定子です。

コード例

以下に、%演算子を使ったコード例を示します。

print("%03d" % 7)  # 結果:"007"

%演算子を用いると、一般的な書式設定を手軽におこなえるのです。

ただし、Python3以降ではformat()関数やf文字列が推奨されているため、新しいコードを書く際はこれらを利用することをおすすめします。

0埋めが役立つ状況

ここからは、0埋めが実際に役立つ具体的な状況について解説します。

数字の整形だけでなく、ファイル名の生成やテーブル作成など、さまざまな場面で0埋めは活躍します。

  • ファイル名の連番を生成する
  • 数値テーブルを作成する
  • キーボード入力の整形

ファイル名の連番を生成する

0埋めは、連番を含むファイル名を生成するときに便利です。

0埋めを行うことで、ファイルが自然な順序で並ぶことが確保されます。

for i in range(1, 101):
    print(f"file_{i:03}.txt")  # file_001.txt, file_002.txt, ..., file_100.txt

数値テーブルを作成する

0埋めは、数値テーブルを作成するときにも役立ちます。

数値の桁数が一定に保たれることで、テーブルがきれいに揃い、見やすくなります。

for i in range(1, 101):
    print(f"{i:03} | {i*i:05}")  # 001 | 00001, 002 | 00004, ..., 100 | 10000

キーボード入力の整形

また、キーボード入力やファイルから読み込んだデータなど、ユーザから得られた文字列を整形する際にも0埋めが有用です。

input_number = input("数値を入力してください:")
formatted_number = input_number.zfill(5)
print(formatted_number)  # 入力が"123"なら、"00123"と表示される

0埋めに関する注意点

0埋めを利用する際には、いくつか注意すべき点があります。

これらの注意点を理解し、効果的に0埋めを活用するためのコツを掴みましょう。

  • 文字列と数値を混在させない
  • 0埋めする桁数を適切に指定する

文字列と数値を混在させない

Pythonでは、文字列と数値を混在させた演算はできません。

0埋めを行う場合でも同様で、数値を0埋めするにはまず文字列に変換する必要があります。

次の例のようにstr関数を使い、数値を文字列に変換してから0埋めをおこないましょう。

num = 123
num_str = str(num).zfill(5)  # "00123"

0埋めする桁数を適切に指定する

また、0埋めを行う際には、0埋め後の桁数を適切に指定することが重要です。

指定する桁数が元の数値や文字列の長さより短い場合、0埋めはおこなわれません。

"123".zfill(2)  # "123"、2桁で0埋めを試みても元の"123"がそのまま返る

まとめ:Pythonで0埋めを活用しよう

当記事では以下の0埋めの方法を学んできました。

  • zfill()関数: 指定した桁数まで0を補う
  • rjust(), ljust(), center()関数: 指定した桁数と位置に合わせて0を補う
  • format()関数f文字列: 書式を指定して0を補う
  • %演算子: 文字列内で書式を指定して0を補う

これらの方法はそれぞれ異なる状況で最適な0埋めが可能。

どの0埋めの方法を使うべきかは、何を達成したいかによるでしょう。

例えば、特定の位置に0を挿入したいならばrjust(), ljust(), center()関数が適しています。

一方、複雑な書式で0埋めを行いたいならformat()関数f文字列が有効です。

これらの0埋めの方法を理解し、それぞれの利点と適切な状況を理解することで、Pythonでのデータ処理がより効率的になることでしょう。

以上でPythonを用いた0埋めの基本と応用についての解説を終えます。

今回学んだ内容を活かして、日々のコーディングをより便利で効率的なものにしてください。

タイトルとURLをコピーしました