printって結構なんとなく使っていますが、関数なのです(知ってますよね)。
実は文字を表示する際に使える機能がいくつかあるので紹介したいと思います。
また、変数を気持ちよくかっこよくprint関数に入れて表示する方法を書いていきます!(こっちが本命です!)
print関数の引数
まず簡単にprintの引数で使えるものを紹介していきたいと思います。
sepとendです。
sepは文字列を区切るときの区切り文字を決めます。
endは表示文字列の末尾に挿入する文字列を決めます。
言葉だけだとよくわからないので、コードを書いてみましょう。
まずデフォルトの状態で表示してみます。
# デフォルト値で表示
a = 'Why you are so mean'
b = 'Because I like to be'
print(a, b, sep='', end='\n')
Why you are so meanBecause I like to be
いつも通りの構成で表示されましたね。 半角スペースを手動で入れないと、繋がってしまいますね。
デフォルトのsepとendの値は上記になっています。
キーワード引数なのでsep, endと指定しないと、表示する文字列として扱われます。
次にsepとendの値を少し変えて文字列間がつながらないようにして、改行をしないように変更してみましょう。
# sep=' - '
# end='\t'
a = 'I am mad at you'
b = 'why?'
c = 'You broke my phone yesterday night'
d = 'No you did when you got drunk'
sep = ' - '
print(a, b, sep=sep, end='\t')
print(c, d, sep=sep)
I am mad at you - why? You broke my phone yesterday night - No you did when you got drunk
説明するために少し無理矢理感がありますが、、、
意図通りに表示することができました。
覚えておくと意外と使える場面があるかもしれませんね!
変数のいろいろな表示方法
変数を組み合わして文字を表示するときは上記の方法だと少し面倒な時が多いです。
ここではもうちょっとスマートに表示する方法を紹介していきます。
まずは.formatを使う方法
name = 'Tako'
age = 25
hobby = 'baseball'
f = 9.5
print('{0} {1} {2}'.format(name, age, hobby))
Tako 25 baseball
右揃え、中央揃え(padding)、小数点の表示
# 幅10の右揃え
print('右揃え')
print('{0:>10s} {1:>10d} {2:>10s}'.format(name, age, hobby))
# 幅10の中央揃え
# 隙間は+で埋める(padding)
print('\n中央揃え')
print('{0:+^10s} {1:+^10d} {2:+^10s}'.format(name, age, hobby))
# 中央揃えして小数点第五位まで表示
print('\n中央揃えで小数点第五位まで表示')
print('{0:^10.5f}'.format(f))
右揃え
Tako 25 baseball
中央揃え
+++Tako+++ ++++25++++ +baseball+
中央揃えで小数点第五位まで表示
9.50000
fを使っての表示(正式名称がわかりません・・・)
print(f'Name:{name:^10s} Age:{age:^10d} hobby:{hobby:^15s}')
Name: Tako Age: 25 hobby: baseball
おまけ
pprintモジュールがあり自動的に綺麗に表示してくれます。
listやdictなどを自動的に改行を入れてみやすくしてくれます
例えば
from pprint import pprint
lst = [a, b, c, d]
print(lst)
pprint(lst)
['I am mad at you', 'why?', 'You broke my phone yesterday night', 'No you did when you got drunk']
['I am mad at you',
'why?',
'You broke my phone yesterday night',
'No you did when you got drunk']
こんな感じです。興味のある方は調べてみてください
まとめ
簡単にですが、printの役立つ知識を紹介していきました。
正直print関数をガッツリ使うことはあんまりないかと思いますが、
.formatやfはstr型の変数を作る時にも使えるので、その時に使えそうです!
指摘ありましたらコメントお願いいたします。