print関数の中でformatを使う方法を知りたいな。
基本的な説明から詳しくして欲しい。
こちらの悩みを解決しますね。
本記事の内容
・formatとは
・formatの使い方
・formatを使う場面
・formatのメリット
この記事を書いている自分は、プログラミング歴4年の駆け出し以上中堅未満のエンジニアです。
過去には、AI囲碁をWebアプリ化したり、Pythonでのアプリ開発、Web制作やフロントエンドのデザインまで幅広くやってきました。
今回はそんな経験をもとに解説していこうかと。
当サイトでは、覚えるべきところを全てまとめているので、画面を撮影して何度も読み返すことをおすすめします。
それでは、解説していきます!
formatとは
formatとは、文字列内での状態や構成が状況に応じて変化する変数を利用するためのpython2.7以降で利用できるメソッドのことです。
分かりにくと思うので、箇条書きでまとめてみます。
formatとは
- 利用できるのはpython2.7以降
- メソッドの一つ
- 異なる型を使用すると発生するエラーの心配がない
上から順に解説していきますね。
まず、利用できるのはpython2.7以降であり、2.6以前のバージョンでは、C言語と同じように「%演算子」を使わなければならないので気をつけましょう。
次に、formatはpythonのメソッドの一つです。
メソッドが分からない人は、関数と比較してみると分かりやすいでしょう。
メソッドと関数の違い
- 関数・・・入力値を受け取り命令を実行し出力文を返すまでの複合文
- メソッド・・・特定のデータ型に密接に関連づけられている関数のこと
すなわち両方とも関数なのです。
最後に、formatを使えば、異なる型を使用すると発生するエラーの心配がありません。
これについては、後ほど「formatのメリット」で解説します。
formatの使い方
基本的な使い方
使い方は、下の通りです。
print( ‘{} {}’ .format( ‘文字列1’ , ‘文字列2’ ) )
※「{}」を波カッコと読んでいます
この場合、文字列1が手前の波カッコに、文字列2が後ろの波カッコの位置で出力されます。
実際に出力すると、
文字列1 文字列2
のような結果になります。
もちろん、波カッコが3つなら「文字列3」のようなものも登場しますし、波カッコが一つなら
print( ‘{}’ .format( ‘文字列1’ ) )
というプログラムになります。
同じように、下のプログラムだと…
print('{} {}'.format('Hello', 'World'))
出力結果は、Hello Worldです。
発展的な使い方
formatメソッドの使い方は、もちろんこれだけにとどまりません。
print('{0} {1} {0}'.format('Hello', 'World'))
このように、{}の中にポジション(番号)を指定して、入力することもあります。この場合、0→1→0となっているため、出力結果は
Hello World Hello
となります。
formatを使う場面
普通のprint関数の中をいじらず、formatメソッドを使う利点は、固定の文字列を何度も使いまわすことができる点にあります。
変数を使ってそれを表してみましょう。
year = 2021
month = 'March'
day = '4th'
print('Today is {0} of {1} {2}'.format(day, month, year))
実行結果は以下の通りです。
文字列内に変数を埋め込むメリットは、文字列内で状態や構成が状況に応じて変化する変数を利用する仕組みを使うことができる点です。
上の例で言えば、{0}と{1}を変えるだけで、Marchと2021の順番を変えることもできます。
例えば、表記方法や変数の中身を型ごと変えたくなった時でも、formatは役に立ちます。
formatのメリット
python2.6以前では、printf形式といって%表記を使う方法が主流でした。
しかし下の3つのメリットにより、今ではformatが良く使われています。
formatのメリット
- 表記がシンプルで覚えるのが楽であること
- 処理速度が速い
- 間違いを簡単に防ぐことができる
上の2つは理解できると思うので、一番下だけ解説しますね。
特に、通常なら型変換が必要な場面で「間違いを簡単に防ぐことができる」という利点を発揮します。
先程のコードの例をご覧ください。よく見ると、「March」「4th」という文字列と「2021」という数値が混在しています。
こういう場合は危険で、文字列と数値が混在するためエラーになりかねません。
たとえば、下のプログラムだとエラーになります。
text = '文字列'
num = 1
print(text + num)
エラーになる理由は、型が異なるからです。
その点、formatを使えば変数の型にハマらず、ちゃんと出力したい文字列や数値を出してくれます。
下が正しいプログラムです。
text = '文字列'
num = 1
print('{} {}' .format(text, num))
まとめ:printとformatの使い方まとめ
formatとは
- 利用できるのはpython2.7以降
- メソッドの一つ
- 異なる型を使用すると発生するエラーの心配がない
一番下の意味は、下のプログラムが主な例です。
text = '文字列'
num = 1
print(text + num)
このままだとエラーが出てしまうので、
text = '文字列'
num = 1
print('{} {}' .format(text, num))
このようにしてformatを使用しましょう。
コメント