超初心者向けPython入門講座

仕事の効率化などにpythonを使いたい!けど何から始めらばよいか分からない、といった初心者の方向けに、pythonの導入から実用的な使い方まで、極力分かりやすくまとめたサイトです。

python

Pythonで桁数やゼロ埋めを行う方法(format)

投稿日:

今回は、pythonで「format」を用いて、数字や文字の桁数をそろえたり、ゼロ埋めする方法について解説します。

解説内容

 

1. formatの基本的な使い方と桁数指定

まずは、「format」の基本的な使い方について解説します。

formatの基本的な使い方は、「“{}”.format(代入するもの)」という形です。

{}の部分に、(代入するもの)が入った状態で出力されます。

簡単な例を挙げると、下のような形です。

dat = "{}".format("testです")
print(dat)

>>>testです

 

そして本題はこれからで、「{}」の中身は、「{:フォーマット}」とすることでフォーマットを指定することができます。

これも例を見てみましょう。

dat = "{:*^20}".format("testです")
print(dat)

>>>*******testです*******

このように、空白を「*」で埋めたりすることもできます。

 

では、よく使うフォーマットを詰め合わせたものを紹介し、細かく解説します。

下のコードを例に説明していきます。

dat = "{:*^20,.3f}".format(21902.198)
print(dat)

>>>****21,902.1980*****

 

上のフォーマットを分解すると、下のようになります。

 

では、ひとつづつ解説していきます。 

1. フォーマット指定開始の「:」

最初に解説した通り、フォーマットを指定するためには、まず「:」を入れる必要があります。

この「:」を書いてからフォーマットを書き始めると覚えておきましょう。

 

2. 桁数や位置の指定

次の3つのかたまりが、桁数や位置の指定を表します。

 

2.1 空白を埋める文字

まず最初に、空白を埋める文字を指定できます(指定できるのは1文字のみ)。

3番目で桁数を指定するのですが、入力がその桁数未満の場合に生じる空白を埋める文字を指定します。

ちなみに省略可能で、省略すると空白にはスペース「 」が入ります。

 

2.2 位置を指定

次に文字の位置を指定します。位置の指定には下の3つを使います。

記号位置使用例表示
<左詰め“{:*<5}”.format(3)3****
^中央“{:*^5}”.format(3)**3**
>右詰め“{:*>5}”.format(3)****3

ちなみに位置は、「空白を埋める文字」を指定しなかった場合のみ省略可能で、省略した場合は右詰め「>」と同じになります。

 

2.3 桁数の指定

最後に桁数を指定することができます。

入力される文字数が、ここで指定した桁数以下の場合は空白ができます。

逆に指定した桁数以上の場合は、指定した桁数で止まらず入力した桁数に合わせられます。(空白はできません)

 

3. 文字の形式を指定

最後に、文字の形式を指定します。

 

3.1 千区切りでコンマを挿入

数字の桁が多い場合、千区切りでコンマ「,」が良く挿入されますが、それを記入することができます。

ちなみに省略可能です。

 

3.2 文字の形式を指定

本題はこちらで、最後に文字の形式を指定することができます。

主に使うものは下の4つになります。

記号意味使用方法
s文字文字の場合に使用(省略可)
d整数整数の場合に使用(省略可)
.数字f実数(少数点表記).3f のように小数点以下の桁数を入力
.数字e実数(指数表記).3e のように小数点以下の桁数を入力

ただし、省略することで基本的に入力の形式に合わせて読み込んでくれるため、実際は小数点以下の桁数をそろえたい場合のみ使用することになると思います。

ちなみに、実数で指定した少数以上に桁がある場合は、四捨五入され指定した桁数に揃えられます。

 

以上で、良く使うformatの基本操作について解説しました。

Point
  • formatの基本的な使い方は「“{}”.format(代入するもの)」という形
  • 「{:フォーマット}」とすることでフォーマットを指定することができる

 

 

2. ゼロ埋めの方法

次に、空白をゼロ埋めする方法について解説していきます。

といっても、上で解説した基本を理解された方はすでに察しはついているかもしれませんね。

では、解説していきます。

 

ゼロ埋めを行いたい場合は、以下のように記述します。

dat = "{:0>5}".format(2)
print(dat)

>>>00002

このように、
①「空白を埋める文字をゼロに指定」し、
②「右詰め」で、
③「桁数を指定」する
ことで
ゼロ埋めを行うことができます。

上の「1. formatの基本的な使い方と桁数指定」で基本は全て解説していますので、もし分からなかった場合はそちらをご覧ください。

Point
  • ①空白を埋める文字をゼロに指定
  • ②右詰めを指定
  • ③桁数を指定

 

 

3. 文字列との組み合わせ

さて、formatの基本的なことについては解説し終えましたので、次は文字列との組み合わせについて解説したいと思います。

といっても基本は変わらず、内容としては「{}」の前後に文字を打てますよ、というものです。

具体例を見てみましょう。

day = "今日は{:0>2}日です。".format(15)
print(day)

>>>今日は15日です。

このように、formatで指定する「{}」の前後には文字を入力できますので、上のように表示させることができます。

 

では、これはどういった時に使うのかというと、例えば1月~12月のフォルダを作りたい、なんて時には、下のようにすることで簡単に作ることができます。

import os
for i in range(1,13):
    mon = "{:0>2}月".format(i)
    os.makedirs(mon, exist_ok=True)

上のように、簡単に月別のフォルダを作成することができました。

ちなみに、フォルダを名前順に並び替えると、ゼロ埋めしていない場合はきれいに並びませんので、ゼロ埋めして作成することをお勧めします。

また、フォルダの作成部分で疑問があった方は、下の記事で解説していますのでそちらをご覧ください。

Point
  • formatで指定する「{}」の前後には文字を入力できる
  • フォルダを名前順に並び替える時ゼロ埋めしていないときれいに並ばない

 

 

4. 複数のformat指定

最後に、複数のformatを同時に使用する方法について解説します。

「{}」の中でフォーマットを指定する際は、必ず「:」を付けてから始めましょうと解説しましたが、実はその左側はインデックス番号を指定する位置になっています。

これについて、例題を見ながら解説します。

dat = "今日は{0:0>2}月{1:0>2}日です".format(8, 31)
print(dat)

>>>今日は08月31日です

上のようにすることで、2つのフォーマットを指定できます。

この時の記述方法は、「{インデックス番号:フォーマット}」という形をとります。

インデックス番号とは、.format()の中身をコンマ「,」で分け、前から順番につけた番号です。(ゼロ始まり)

 

ちなみに、インデックス番号を指定すれば、下のように何度でも使用することができます。

dat = "今日は{0:0>2}月{1:0>2}日で、{1:0>2}日はゴミの日です。".format(8, 31)
print(dat)

>>>今日は08月31日で、31日はゴミの日です。

このように、インデックス番号を指定すれば、任意の場所に入力することができます。

Point
  • {インデックス番号:フォーマット}でインデックス番号を指定
  • インデックス番号とは、.format()の中身をコンマ「,」で分け、前から順番につけた番号
  • インデックス番号を指定すれば複数回使用できる

 

 

5. おわりに

今回は、数字や文字の桁数をそろえたり、ゼロ埋めする方法として「format」の使い方を解説しました。

特に、ゼロ埋めは日付を付ける際にもよく使用するため、覚えておいて損はないと思います。

 

なお、このサイトでは初心者の方向けに「Python初心者入門講座」という講座を作っていますので、気になった方はそちらもご覧いただけると幸いです。

スポンサーリンク




スポンサーリンク




-python
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

第9章 Pythonの入力(input)を使ってみよう

この章では、入力文(input)を学んでいきましょう!入力文とは、プログラムを実行した後に、あとから好きな文字や数字をプログラムに反映させる方法です。 解説内容 inputの使い方 inputを使って …

Pythonでcsvファイルへの書き出し(list,numpy,pandas対応)

今回は、「csvファイル」へのデータの書き出しについて解説していこうと思います。csvファイルとは何か?については、本サイトの「Pythonでcsvファイルを読み込んでみよう」で解説しているので、そち …

第14章 Pythonでフォルダを作成してみよう

この章では、ファイルに記入したフォルダ名を読み取り、複数のフォルダを一括で作成する方法について解説します。 解説内容 フォルダを作成してみよう ファイルからフォルダ名を読み取って作成   1.フォルダ …

第4章 Pythonのループ処理(for)を使ってみよう

この章では、いよいよ「ループ処理」を使っていこうと思います! 解説内容 ループ処理って何? ループ処理を使ってみよう ループ処理の範囲 rangeによるループ処理の応用 listを用いたループ処理   …

第3章 Pythonの変数を使ってみよう

この章では、第2章で少し話が出てきた「変数」について、実際に使ってみましょう。変数は、プログラミングを行う上で大切なポイントなので、しっかり学んでいきましょう。 解説内容 変数って何? 変数を使ってみ …

スポンサーリンク





初めまして、サイトを運営しているキユと申します。

このサイトでは、まったくの初心者がPythonを使って、単純作業や仕事を効率化できるようになるまでに必要なことをまとめています。