1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

子供の想像力を伸ばしアイデアを形にする小学生向けプログラミング教室「プロスタキッズ」

Python超入門その32〜自在に文字列を出力できるようになろう〜

Pocket

はじめに

文字列はうまく扱えていますか?

プログラムでは、ユーザーインターフェースへの表示などで文字列を扱うことが少なくありません。
また、デバッグ時に必要な情報を得るためにも、文字列に頼ることが多いでしょう。

このため、変数などを適切な文字列に整形する必要があります。

多くの場合、そのまま変数を出力ことは適切ではないからです。
そのため、Pythonでは文字列クラス(str)に「formatメソッド」が用意されています。

この記事では、Python初心者の方向けに、formatメソッドによる文字列の整形について詳しくお伝えしていきます。

ひとつの引数を与える場合

まずは、シンプルにひとつの引数のみを与える場合をみてみましょう。

formatメソッドは文字列クラス(str)のインスタンスメソッドとして定義されているため、次のように文字列リテラル(インスタンス)から直接呼び出せます。

例:

 

引数がひとつの場合、文字列内にプレースホルダとして「{}」を記述します。

そして、文字列に埋め込みたい変数を引数に渡してやれば、プレースホルダの位置に変数の内容が埋め込まれた文字列が得られます。

次は、複数の引数を渡す場合です。

複数の引数を与える場合

変数ひとつだけなら、文字列連結で解決することもできます。

しかし、複数の変数となると、文字列連結ではわかりづらくなってしまいます。

ここは美しく、formatメソッドで解決しましょう。

それには、次のようにします。

例:

 

先程の例とは違い、複数の引数を渡す場合にはプレースホルダにインデックスを記述します。

インデックスが0から始まることに注意して下さい。

一番目の引数が0、二番目が1三番目が3、4番目が…と続きます。

また、次のようにキーワード(名前)で指定することも可能です。

例:

 

引数にリストやタプルなどを与える場合

formatメソッドには、単一の値だけでなく、リストやタプルなどを与えることもできます。

たとえば、次のようにします。

例:

 

リストやタプルを渡す場合には、プレースホルダ内に引数のインデックスに加え、リストやタプルのインデックスを記述します。

お気付きの通り、引数のインデックスも記述するため、複数のリストやタプルを渡すことも可能です。

また、次のようにディクショナリを渡すこともできます。

例:

 

キーワードで指定する場合と似ていますが、ディクショナリを引数に渡すときに「**」をつけてアンパック(複数の引数に分解)してやる必要があることに注意しましょう。

引数に書式設定を加える

最後に、引数の書式設定を加える方法について説明していきます。

書式設定は、次のようにプレースホルダ内に記述します。

例:

 

書式設定は、インデックスの後に「:(コロン)」で区切って記述します。

記号と数値で構成されており、「^(中央揃え)」「<(左揃え)」「>(右揃え)」と文字列が専有する幅を数値で指定します。

適切な幅を指定すれば、例のようにテーブルのように整形することも可能です。

また、よく使う書式設定として、次のような日付のフォーマット指定にも対応しています。

例:

 

日付の書式設定は、パーセント記号(%)とアルファベットを組み合わせて記述します。

それぞれ英単語の頭文字になっているのでわかりやすいですが、月は「m」分は「M」であることに注意して下さい。

ここではよく使う書式設定を説明してきました。

他にも進数の変換など、さまざまな書式設定があるので、書式設定に困ったら公式ドキュメントを調べてみましょう。

まとめ

文字列をうまく整形できるようになりましたか?

formatメソッドは非常に自由度が高く、変数をさまざまな形に整形できます。

単一の値だけでなく、リストやタプル、ディクショナリも扱えるため、積極的に活用していきましょう。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

プログラミングで挫折しそうなら、現役エンジニアにマンツーマンで相談してみませんか?オンラインのプログラミングスクール「TechAcademy」のメンターが対応。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る