【Python 入門】formatメソッドで変数の内容を出力する方法

Pythonで変数の内容を出力するにはどうすればいいの?
formatメソッドで変数の内容を出力する方法がいまいちわからない…

テストや検証で変数の中身を確認したいことはよくあります。Pythonで変数の内容を出力するには、print関数でformatメソッドを使用します。

今回は、Pythonにおけるformatメソッドの使い方について、やさしく解説していきたいと思います。formatメソッドを活用出来ると、文字列の出力を行う際にとても重宝します。

この記事はこんな人のために書きました

  • Pythonで変数の中身を出力させたい
  • formatメソッドの使い方をよく知りたい

今回はPythonのformatメソッドの基本から、実践的な内容に関してもわかりやすく解説していきます。

Pythonのformatメソッドとは

formatメソッドは、文字列内に変数を埋め込むときに使用するメソッドです。

主にprint関数で文字列を出力するときに使用される事が多いです。

たとえば、


「It’s ◯◯ all day today.」

という文字列の◯◯の箇所に変数の値を埋め込みたい場合などに使用します。

formatメソッドの注意点

注意しなければいけないのが、formatメソッドはPython2.6以降でしか使うことが出来ません。Python2.6以前のバージョンではC言語のような%演算子を使わなければならないので気をつけましょう!

Pythonのformatメソッドの使い方

書き方

formatメソッドの基本的な構文はこのようになっています。

  • 文字列str1と文字列str2の間に「{}」があります。
  • 「{}」にformatメソッドの引数である変数varが埋め込まれます。

基本的な使い方

では実際にformatメソッドを使ってみましょう!

こちらのサンプルコードを見てみましょう。

実行結果

このサンプルコードでは、変数myvarが格納している値である「2018」を文字列の中に埋め込んでみました。ご覧いただけるように、「This is the」と「th year」の間の「{}」に2018が含まれています。

このサンプルコードでは、formatメソッドの引数を一つだけ設定しました。

複数の変数を指定する方法

複数の変数を同時に出力したい場合は、このようにコードを書きます。

実行結果

このサンプルコードでは、formatメソッドに三つの引数を指定しました。指定する引数のうち、yearのみがint型、その他2つは文字列型です。

変数の型に関係なく埋め込みは「{}」内に行われます。

「{}」内に指定した番号はformatメソッドの引数の番号です。このように番号を指定することで、変数の代入の順番を管理することが出来ます。

formatメソッドは「{}」が空でも問題なく作動します。その場合は、formatメソッド内の引数の順番通りに出力されることになります。

文字列にリストを表示する

これまでのサンプルコードではint型や文字列型の埋め込みを見てきました。

しかし、リスト型やタプル型などのシーケンスも埋め込む事ができます。

こちらのサンプルコードを見てみましょう。

実行結果

このサンプルコードでは、mylist内の三つの要素を埋め込んでみました。

先ほどとは違い、「{}」の中身は空ではありません。「{}」の中の「0」はformatメソッドの何番目の引数であるか、「[0]や[2]」は要素のインデックスを表しています。

このように、シーケンス型の埋め込みも簡単に出来ましたね。

printする位置を指定する

今までは、formatメソッドを使って変数を文字列に埋め込む方法を解説してきました。変数を文字列に埋め込む際の幅を指定する事もできます。

具体的に見ていきましょう。

幅を指定することで、文字列内に表示される変数の位置を指定することが出来ます。

実行結果

このサンプルコードの 「{}」の中には、左側にはformatメソッドの引数の順番が、「:」から右側は埋め込み位置を指定されています。

1番目に埋め込まれた変数str1の書式は「{0:<10}」なので、10の幅を取り、左詰めに出力されました。

2番目に埋め込まれた変数str2の書式は「{0:^10}」なので、10の幅を取り、中央に出力されました。

3番目に埋め込まれた変数str3の書式は「{0:>10}」なので、10の幅を取り、右詰めに出力されました。

以下に使用した型の一覧をまとめておきます。

説明
^指定幅で中央に出力
<指定幅で左詰めに出力
>指定幅で右詰めに出力

%記法を対応させる

次に%記法とformatメソッドの対応についてみていきます。

%dやら%sやらC言語や他の言語などでは今でも色濃く根付いている書き方で%演算子の方が馴染みがある、という方も多いのではないでしょうか。

そんな方のために、%記法がformatにどう対応しているかということを解説していこうと思います。

ではまず%dから。

ちなみにですが%dは符号付整数のことです。例えば10を表示したいを表示したい場合、C言語では、

としますが、Pythonのformartでは

としてやれば良いです。

つまり%記法など使わなくてもデフォルトで符号付整数を示してくれるということですね。

一応符号付整数ということを確認するために

このようなコードを書いてみると、

実行結果

はい、きちんと計算してくれました。

どんどん行きましょう次は%sです。%sは文字列を表します。C言語では

という感じですが、Pythonのformatでは、

こんな感じですね。

つまり、ダブルクォーテーション「”」かシングルクォーテーション「’」で囲むと%sとして扱ってくれるということですね。

最後に%fについてみてみましょう。

%fは小数点を含む数値(浮動小数点数)を扱ってくれます。C言語では、

となりますがPythonのformatでは

という風に:fで浮動小数点数として扱ってくれるということですね。

本当に小数点を含む数値として扱っているか確認して見ると、

実行結果

バッチリですね。

まとめ

今回はPythonの基本的なformatメソッドの使い方と、その活用法について解説しました。また、%記法に対応させたり、位置を指定する方法についてなども説明しました。

formatメソッドはprint関数などでとても便利で、今後どんどんメジャーになってくると思われるので、必ずマスターしておくべきですね。この記事を通して、ご自身でも試して理解を深めてくださいね。

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

Kotono

Kotono

イタリア在住15年目の22歳です。イタリアの大学で情報科学&応用数学を学んでいます。主にJavaScriptやPythonについての記事を書いたりしています。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説