【Python3】数値をパーセント(%、百分率)で表示させる方法2【format】

前回はformatメソッドを使って数値を3桁区切りや、小数点第2位までの表示にした。
今回は、前回のプログラムの記述方法を改善していく。

前回の記事

前回はprint()とinput()とint()を使用し、入力した数字を元に単純な計算した。 今回はそれらを元に粗利額と粗利率を計算し、粗利...




Printで出力される不要なスペースを無くす

<前回のプログラム>

cost = int(input('仕入原価(円)を入力してください:'))
sales = int(input('売上(円)を入力してください:'))
#粗利額計算
gp = (sales - cost)
print('粗利額は', '{:,}'.format(gp), '円です。')
#粗利率計算
gpr = gp / sales 
print('粗利率は', '{:.2%}'.format(gpr), 'です。\r\n')

<前回のプログラム実行結果>

前回のプログラム実行結果

前回のプログラムの実行結果では

粗利額は10,000,000円です。
粗利率は66.67%です。

のように、無駄なスペースが入ってしまう。
print関数内の半角スペースを削除するだけで解決しそうなものだが、それだと実行結果は変わらない。
これを解決するため、プログラムを以下のように書き換える。

<修正後プログラム1>

cost = int(input('仕入原価(円)を入力してください:'))
sales = int(input('売上(円)を入力してください:'))
#粗利額計算
gp = (sales - cost)
print('粗利額は{:,}円です。'.format(gp))
#粗利率計算
gpr = gp / sales
print('粗利率は{:.2%}です。\r\n'.format(gpr))

<修正後プログラム1実行結果>

修正後プログラム1実行結果

print内のテキストをカンマ,で区切らず一続きにしたことで、スペースが無くなった。
なお、波括弧{}と.format()が離れていても、.format()で指定した引数が、
波括弧{}の位置に、
波括弧{}で指定した書式で

入力されるので問題ない。
※書式指定なし(波括弧内に何も書かない)も可能。

print文を1つにまとめる

formatメソッドをうまく使うことによって、2つに分かれているprint文を1つにまとめることができる。

<修正後プログラム2>

cost = int(input('仕入原価(円)を入力してください:'))
sales = int(input('売上(円)を入力してください:'))
#粗利額計算
gp = (sales - cost)
#粗利率計算
gpr = gp / sales
print('粗利額は{:,}円です。粗利率は{:.2%}です。\r\n'.format(gp, gpr))

<修正後プログラム2実行結果>

修正後プログラム2実行結果

上記<修正後プログラム2>のように、テキスト内に波括弧{}を複数用いることが可能。
.format()に引数をカンマ,区切りで指定することによって、
引数が前から順番に波括弧へ差し込まれている。

続き

前回はformatメソッドを使って数値を3桁区切りや、小数点第2位までの表示にした。今回は、前回のプログラムの記述方法を改善していく。 ...