pythonで、print('Hello world!')を書いたことはありませんか?
昔からプログラム言語でやるHello Worldの出力です。
printは文字や変数の表示するシンプルな機能ですが、使い方も色々あります。
本記事はこんな方におすすめです。
色々な使い方も知りたい。
本記事の内容
- 基本的な使い方
- 出力する文字のフォーマット
- 応用した使い方
python入門 基礎まとめも参考にしてください。
目次
基本的な使い方
printとは?その役割
printの役割は、文字、数値などのデータを出力することです。
データを出力することで、処理結果を確認します。
jupyter notebookであれば、コードを入力する下に表示されます。
この機能は、これからずーっと使っていくのでしっかり習得しましょう。
pythonには2と3がありますが、2021年時点ではpython2のコードを見ることは、ほとんどありません。ですので、この記事はpython3を対象とします。
構文
使い方は、簡単です。
print(データ)
とするだけです。データをかっこ()で囲いましょう。
出力されるデータ
どんなデータでも、printを使えば、何かしら出力してくれます。
例えば、文字列、数値やデータの集まり(list、dict、tuple)です。
関数とかをprint(関数名)としても、出力します。
「function」と出るだけですが。。。
list、関数とかがわからない方も問題ありません。
プログラミングは、データや処理を扱うために色々なものがあり、その種類です。
文字を出力
まず、文字列(Hello World)を出力します。
print('Hello World') print("Hello World")
Hello World Hello World
文字をシングルコーテーション(')、ダブルコーテーション(")どちらかで囲います。
変数に入れて表示してみます。
a = 'Hello World' print(a)
Hello World
どれも同じ処理になります。
数値の表示
次に数値を表示します。
a = 1234 print(a)
1234
変数aに数値を入れていますが、入れなくても表示できます。
list,tuple,dictを出力
データの集まりであるlist、tuplt、dictを表示してみましょう。
まとめていきます!
# list list_a = [1,2,3] print(list_a) # tuple tuple_a = (1,2,3) print(tuple_a) # dict dict_a = {'a':1, 'b':2, 'c':3} print(dict_a)
[1, 2, 3] (1, 2, 3) {'a': 1, 'b': 2, 'c': 3}
ここまでが、基本的な使い方です。
これで、あなたもprint文を使えるようになりました!!!
第1ステップは完了です!
次から、応用した使い方を紹介していきます。
出力する文字のフォーマット
printでは、変数に入った、数値と文字を組み合わせて表示することが多いです。
その場合は、フォーマットして出力します。
フォーマットでは、「Hello 2021」と数字と文字を組み合わせたり、「5」を「005」や「5.00」のような文字に変換したりします。
フォーマットの種類
pythonではこのフォーマットする方法は3つあります。
種類 | 書き方 | 例 a=1 b=2 c=3の時 フォーマット結果: 1+2=3 |
---|---|---|
%形式 | '%書式' % 値 or 複数の場合 '%書式, %書式' % (値, 値) |
'%d+%d=%d' % (a,b,c) |
format | '{:書式}'.format(値) or 複数の場合 '{:書式}{:書式}'.format(値, 値) |
'{:d}+{:d}={:d}'.format(a,b,c) 書式を省略 '{}+{}={}'.format(a,b,c) |
f-string | f'{値:書式}' | f'{a:d}+{b:d}={c:d}' 書式を省略 f'{a}+{b}={c}' |
この表の例では、書式に「d」を使っています。書式は、次で詳しく説明します。
formatとf-stringは書式を省略することもできます。
f-stringが一番新しく、おすすめです。
他の人のコードで出会うことがあるので、全部なんとなく覚えておきましょう。
コード添付しておきます。
%記法
a = 1 b = 2 c = 3 # %記法 print('%d+%d=%d' % (a,b,c))
1+2=3
format
print('{:d}+{:d}={:d}'.format(a,b,c)) #書式を省略 print('{}+{}={}'.format(a,b,c))
f-string
print(f'{a:d}+{b:d}={c:d}') #書式を省略 print(f'{a}+{b}={c}')
どうでしょう?f-stringが一番わかりやすいですね。
書式
次に書式の紹介です。
書式は次の組み合わせです。
アライメント+ゼロ埋め+文字数+型
一番シンプルなのは、型のみを指定する方法で、他は省略することができます。
先に型の種類を紹介します。
型 | 意味 |
---|---|
d | 10進数 |
b 注意! %記法は使えない |
2進数 |
o | 8進数 |
x | 16進数 |
f | 小数 |
e | 指数表記小数点 |
s | 文字 |
おすすめのf-stringで紹介をします。
num = 10 print(f'2進数:{num:b} 8進数:{num:o} 10進数:{num:d} 16進数:{num:x}') num = 1.234 print(f'小数:{num:f} 指数表記小数点:{num:e}') moji = 'こんにちは' print(f'{moji:s}')
2進数:1010 8進数:12 10進数:10 16進数:a 小数:1.234000 指数表記小数点:1.234000e+00 こんにちは
それぞれ、型に合わせて出力されています。
%記法もformatも、書式の箇所を変更するだけです。
アライメント+ゼロ埋め+文字数はまとめて紹介していきます。
アライメントの種類は3つ
アライメント | 意味 |
---|---|
< | 左よせ |
^ | 中央よせ |
> | 右よせ |
整数での書式
ゼロ埋めは「0」を入れて、文字数には文字数分の「数値」を入れます。
num = 3 # 5文字にして表示 print(f'5文字: {num:5d}') print('-----ゼロ埋め-------') print(f'ゼロ埋め: {num:05d}') print(f'右寄せ: {num:<05d}') print(f'中央寄せ: {num:^05d}') print(f'左寄せ: {num:>05d}') # ゼロ埋めなしでもOK print('-----ゼロ埋めなし-------') print(f'右寄せ: {num:<5d}') print(f'中央寄せ: {num:^5d}') print(f'左寄せ: {num:>5d}')
桁数: 3 -----ゼロ埋め------- ゼロ埋め: 00003 右寄せ: 30000 中央寄せ: 00300 左寄せ: 00003 -----ゼロ埋めなし------- 右寄せ: 3 中央寄せ: 3 左寄せ: 3
アライメント+ゼロ埋め+文字数が全部くっついているので、わかりにくいですが、じっくりみて理解してください。
小数の書式
次に小数点ですが、型に「f」を選ぶのと、文字数の書き方が変わります。
下記のように、文字数だけでなく、小数部の文字数も指定します。
「全体の文字数」.「小数部文字数」
わかりにくいので図にします。
全体の文字数は省略が可能です。
実際のコードで見てましょう。
num = 1.234 print(f'{num:05.2f}') print(f'{num:.2f}')
01.23 1.23
フォーマットは、ファイル名を変えたりと色々なところで使います。
できる内容だけ覚えて、実際に使うときに見直して使ってください。
応用した使い方
他にもいくつか、変わった使い方があるので紹介します。
区切り文字
printはカンマ(,)区切りでもデータを表示することができます。
複数の変数を表示したいときに、カンマで区切って並べるだけなので、簡単です。
print('Hello', 'world', '2021') print('Hello', 'world', '2021', sep='!! ')
Hello world 2021 Hello!! world!! 2021
引数にsep=区切りたい文字を指定することができます。
改行せずに出力
printは実行すると必ず改行して、出力してくれます。
これを無効にすることができます。
end=''とします。
これは、出力する文字の最後の文字を空にするということです。
print('Hello ', end='') print('world ', end='') print('2021', end='')
Hello world 2021
上書きして出力
出力する文字をどんどん上書きして表示する方法について紹介します。
これは繰り返し処理の進捗を確認するときに便利です。
time.sleep(1)で1秒のウェイトをかけながら、1〜5を表示します。
上書きしない場合
import time for i in range(5): time.sleep(1) print(f'{i+1}/5')
1/5 2/5 3/5 4/5 5/5
上書きする場合
import time for i in range(5): time.sleep(1) print(f'\r{i+1}/5', end='')
5/5
ファイル出力
出力している内容は、ついでにファイルに出力することも可能です。
with open('print_test.txt', mode='w') as f: print('Hello world', file=f)
openで作ったファイルオブジェクトを引数のfileに渡します。
これは、正直あまり使わないですし、使っているのを見たことがないものですね。
お疲れ様でした。以上がprintの使い方の全てです。
全部使えたあなたは、もう、完璧にprintを使いこなしています!!
フォーマットのところとかは、覚えにくいので、使いたいときに見返して使ってください。