プログラミングで最初に出会うのがprint()というのは定番中の定番です。
さらに、最初に決まって出力するのは”Hello World!”。これがスタンダードです。
そんなprint関数ですが、特にデバッグにおける重要性は高いです。今回はprint関数の使い方を、ちょっと凝ったところまで見ていきたいと思います!
print関数とは
一応の一応で、print関数とはを確認しておきます。
print関数は、文字列や数値などをコンソールに出力する役割を持ちます。文字や数値はもちろん、boolや変数の中身も出力することができます。
デバッグ時にはプログラムにprint()を散りばめ、分岐等でどこが実行されているのか等を確認できます。
また、for文などでは、今何回目の処理だとかいうのも出力することができ、あとどれくらいでプログラムが終わるのかといったことの手掛かりにもなります。
print文を書く
ここからは、print文を実際に書いていきます。
今回は、Python3での記法で紹介していきます。
基本
まずは基本的なprint()です。()の中に出力したい文字列や数値を入れます。
print(1)
#Output
1
print("sample")
#Output
sample
配列や辞書型の場合、指定をしない場合はその全てが出力されます。
print([1,2,3])
#Output
[1, 2, 3]
変数についても、その中身が出力されます。
a = "test"
print(a)
#Output
test
改行なし
PythonのPrint関数は、実行するたびに自動で改行されます。
end=”” を指定することで、改行をすることなく出力することができます。
print("Hello", end="")
print(" World!")
#Output
Hello World!
また、end=に任意の文字を入れることで、改行することなくその文字で区切ることができます。
print("Hello", end="-")
print(" World!")
#Output
Hello- World!
変数+文字列
変換指定子(%X)を使う
print()内で%dや%sというように書くと、変換指定子として認識されます。これを用いることで、任意の変数を指定のフォーマットで出力することができます。この形式はprintf形式と呼ばれます。
name = "james"
age = 36
print("%s is %d years" %(name, age))
#Output
james is 36 years
%sは文字列として出力、%dは整数を10進数で出力するという意味の変換指定子です。
変数は、出力する文の後ろに記述します。出力文との間にコンマ(,)は必要ありません。2つ以上の変数を指定する場合は、上記のようにタプル形式で()で括ります。
上記の場合、nameに%sを適用し、ageに%dを適用します。左から順番にというわけです。
変換指定子はいくつか種類があります。詳細は下記の公式ドキュメントを参考ください。
https://docs.python.org/ja/3/library/stdtypes.html#printf-style-string-formatting
formatを使う
文字列のメソッドであるformat()を用いることでも、変数を出力することができます。
name = "james"
age = 36
print("{} is {} years".format(name,age))
#Output
james is 36 years
文字列中に{ }を入れ、そこに入れる変数を.format()で指定します。コンマ(.)を忘れないように注意してください。
{ }に0から始まるインデックスを与えることで、出力する変数を指定することができます。複数回同じ変数を出力したい場合に便利です。
print("{0} is {0} years".format(name,age))
#Output
james is james years
f文字列
文字列の前にfをつけたものをf文字列(フォーマット文字列)と呼びます。この記法では、{ }の中に変数名を直接指定することができます。
name = "james"
age = 36
print(f"{name} is {age} years")
#Output
james is 36 years
まとめ
print関数の使い方を見てきました。思っていたよりも奥が深いと感じましたか?私はそう感じました。
使う場面はよくあると思うので、目当てのアウトプットを素早く出すことができれば時短にもつながると思います。
文字列の結合でのprintを卒業して、かっこいいかつ効率的なprint文を書いていきましょう!
ではでは👋