この記事では、Pythonでターミナル、またはコマンドプロンプトからキーボード入力を受け取る方法を解説します。
Pythonでキーボード入力を受け取るにはinput()
関数を使います。
それでは、input()
関数の使い方を見ていきましょう!
input関数の書式と使い方
input()
関数の書式は以下の通りです。
input([prompt])
コマンドラインに記述された1行を読み込んで文字列で返します。
value = input()
print(f'value: {value}')
print(type(value))
実行結果
123
value: 123
<class 'str'>
オプション引数prompt
が指定された場合、promptがキーボード入力を受け付ける際にコマンドラインに表示されます。
name = input('名前を入力してください: ')
print(f'名前: {name}')
print(type(name))
実行結果
名前を入力してください: 太郎
名前: 太郎
<class 'str'>
input()
関数で受け取った値は文字列に変換され渡されます。なので、他の型として使用したい場合は型を変換する必要があります。
# int()で変換
num = int(input('整数を入力してください: '))
print(type(num))
実行結果
整数を入力してください: 1
<class 'int'>
複数の値を受け取る
コマンドラインから値を渡す際には、Enterで決定して値を渡します。なので、改行して複数の値を渡すことはできません。
input()
関数で複数の値を受け取るには、どのようにすればいいのか見てきましょう!
input関数を複数使用する
input()
関数を使用した回数だけ値を受け取ることができます。
a = input('a: ')
b = input('b: ')
c = input('c: ')
print(f'a, b, c: {a}, {b}, {c}')
実行結果
a: 1
b: 2
c: 3
a, b, c: 1, 2, 3
リストを使う
最初に受け取る値の個数を決めてその数だけ値を受け取る。
# 取得する値の数
len = int(input('length: '))
# 結果を受け取るリスト
results = []
# lenの数だけ繰り返し
for i, l in enumerate(range(len), 1):
results.append(input(f'val {i}: '))
print(results)
実行結果
length: 3
val 1: 9
val 2: 8
val 3: 7
['9', '8', '7']
無限ループを使う
以下のコードは、「EOF」または「eof」が入力されるまで値を取得し続けます。
i = 1
results = []
# 無限ループ
while True:
val = input(f'val {i}: ')
# 「EOF」か「eof」が入力されたら値を受け取るのをやめる
if val in ('EOF', 'eof'):
break
else:
results.append(val)
i += 1
print(results)
実行結果
val 1: 9
val 2: 8
val 3: 7
val 4: eof
['9', '8', '7']
受け取った値を分割する
str
型のsplit()
メソッドを使うことで文字列を特定の文字で分割することができます。なので、決まった形式で値を受け取ることであとで分割することができます。
val = input('x,y,z: ')
# ,で分割
xyz = val.split(',')
print(xyz)
実行結果
x,y,z: 1,2,3
['1', '2', '3']
まとめ
この記事では、Pythonのinput
関数について解説しました。
外部から値を受け取ることでじゃんけんなどのちょっとした遊びも実装することができます。勉強の一環として実装してみては如何でしょうか?
ちなみにじゃんけんを実装するには、input()
関数のほかに乱数とif文を使うことで実装することができます。
それでは今回の内容はここまでです!ではまたどこかで〜( ・∀・)ノ