Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの出力フォーマットまとめ|format()・%演算子・文字列整列の使い方


Pythonでデータ処理の結果を出力する際、見やすい形式に整えたり、数学的な精度を指定して表示したりしたいことがあります。本記事では、Pythonで結果を出力するためのさまざまな方法を、具体例とともにわかりやすく解説します。

format()関数を使う方法

この方法では、Pythonの組み込み関数であるformat()を使用します。波括弧 {} は値のプレースホルダー(置き場所)として機能し、format()関数に渡された値が順番に埋められていきます。デフォルトでは引数の順序どおりに埋められますが、インデックス0から始まる位置指定を行うことで、値の表示順序を自由に制御することも可能です。

コード例

weather = ['sunny','rainy']
day = ['Mon','Tue','Thu']
print('on {} it will be {}'.format(day[0], weather[1]))
print('on {} it will be {}'.format(day[1], weather[0]))
print('on {} it will be {}'.format(day[2], weather[1]))
# 位置指定を使用する場合
print('on {0} it will be {1}'.format(day[0], weather[0]))
print('It will be {1} on {0}'.format(day[2], weather[1]))

上記のコードを実行すると、次のような結果が得られます。

実行結果

on Mon it will be rainy
on Tue it will be sunny
on Thu it will be rainy
on Mon it will be sunny
It will be rainy on Thu

%演算子を使う方法

この方法は数学的な表現に適しています。小数点以下の表示桁数を指定したり、浮動小数点数の整数部・小数部を分けて出力したりできます。さらに、数値を8進数や指数表記(科学的記数法)へ変換することも可能です。

コード例

# 小数を表示(桁数を指定)
print("Average age is %1.2f and height of the groups %1.3f" %(18.376, 134.219))
# 整数として表示
print("Average age is %d and height of the groups %d" %(18.376, 134.219))
# 8進数を表示
print("% 2.7o" % (25))
# 指数表記を表示
print("% 7.4E" % (356.08977))

上記のコードを実行すると、次のような結果が得られます。

実行結果

Average age is 18.38 and height of the groups 134.219
Average age is 18 and height of the groups 134
0000031
3.5609E+02

文字列の整列(アライメント)

文字列の出力位置を揃えるには、文字列メソッドのljust()(左揃え)、rjust()(右揃え)、center()(中央揃え)を使用します。これらのメソッドは対象の文字列のほかに、全体の幅とパディング(埋め文字)として使用する文字を引数として受け取ることができます。

コード例

strA = "Happy Birthday !"
# 中央揃え
print(strA.center(40, '~'),'\n')
# 左揃え
print(strA.ljust(40, 'x'),'\n')
# 右揃え
print(strA.rjust(40, '^'),'\n')

上記のコードを実行すると、次のような結果が得られます。

実行結果

~~~~~~~~~~~~Happy Birthday !~~~~~~~~~~~~
Happy Birthday !xxxxxxxxxxxxxxxxxxxxxxxx
^^^^^^^^^^^^^^^^^^^^^^^^Happy Birthday !

補足:f文字列(f-strings)という選択肢

Python 3.6以降では、より直感的に書ける「f文字列」も利用できます。文字列の先頭に f を付け、{} の中に直接変数や式を記述できるため、可読性が高く、現在のPython開発では最も広く使われている書き方です。

day = 'Mon'
weather = 'rainy'
print(f'on {day} it will be {weather}')

状況に応じてformat()関数、%演算子、f文字列を使い分けることで、目的に合った読みやすい出力を実現できます。

  1. Pythonでタプル同士を除算する方法

    Pythonでタプル同士の除算(要素ごとの割り算)を行いたい場合、「zip」メソッドとジェネレータ式を組み合わせるとシンプルに実現できます。zipメソッドは、複数のイテラブル(反復可能なオブジェクト)を受け取り、それらの要素を対応する位置ごとにまとめてタプルとして返す機能を持っています。一方、ジェネレータとは、イテレータを手軽に作成するための仕組みです。内部的には「__iter__()」と「__next__()」というメソッドを持つクラスが自動的に実装され、内部状態も自動的に管理されます。さらに、返せる値がなくなった時点では「StopIteration」例外を発生させることで、反復処理の終了を

  2. Pythonでパターンを出力する方法|三角形・数字・アルファベット・ピラミッドのコード例

    Pythonでパターンを出力するには、ネストされた(入れ子構造の)forループを使用します。外側のループで行数を制御し、内側のループで列数を処理します。そしてprint文を工夫することで、目的に応じたさまざまなパターンを作成できます。パターンには、星(アスタリスク)パターン、数字パターン、アルファベットパターンなどがあり、三角形やピラミッドなど、さまざまな形状にも対応できます。パターン出力の基本これらのパターンは、print文を少し変更しながらforループを組み合わせることで出力できます。基本的な考え方はどのパターンも共通しており、違いはごくわずかです。ここからは、代表的なパターンのコードを実