Pythonでユーザーの入力を受け取る方法!(入力待ち状態)

Python Python

Pythonをコマンドで実行したときに、ユーザー入力を受け付ける方法について書いています。
Python3系のバージョンの場合はinput関数で入力を受け付けて、Python2系の場合にはraw_input関数を使うと良いです。

ユーザー入力を受け付ける(input, raw_input)

コマンドラインでユーザー入力を受け付けるときには、input関数を呼び出すと良いです。(Python3系バージョンのとき)
例えば、下記のように使うことができます。

userName = input("名前を入力:")
print(userName + "さん、こんにちは。")

input関数を呼び出して、受け付けた入力内容をuserName変数で受けます。
input関数に渡しているのは、コマンドラインに表示する文字列です。
ユーザーはこの文字列の後に入力をすることになります。

input関数を呼び出すと、ユーザーの入力を受け付けるために処理が止まります。
このプログラムを実行すると、下記の状態で処理が中断します。

名前を入力:

ユーザーの入力が終わってエンターが入力されると、後続の処理が動きます。
「taro」と入力すると、下記のような結果になります。

名前を入力:taro
taroさん、こんにちは。

入力された内容をuserName変数で受けて、print関数で後ろに文字列を結合して表示しました。

Python2バージョンで入力を受け付ける

Python2バージョンで入力を受けるつけるときには、raw_input関数を使います。
input関数と同様に呼び出されたときに、入力を受け付けるために処理が一時停止します。

userName = raw_input("input name:")
print(userName + ", hello!!")

受けた入力を数値にする

input関数で数値を入力した場合でも、受け取るときには文字列になっています。

number = input("数値を入力:")
print(type(number)) # <class 'str'>

input関数でnumber変数に受け取った値を、type関数で型出力してみました。
下記のように、値の「100」を入力しても、文字列型で入力されました。

数値を入力:100
<class 'str'>

この場合には、文字列から数値に変換すると良いかと思います。
下記のようにint関数を使うと変換できます。

number = input("数値を入力:")
number = int(number)

print(type(number)) # <class 'int'>

関連:・Pythonで文字列を数値に変換する(int, float)

受けた入力をリスト(配列)にする

受けた内容をリストにしたい場合には、受け取った文字列からsplitメソッドを使いましょう。
半角スペースを入れて入力すると、入力された内容がリストに分割されます。

fruits = input("果物名:")
fruits = fruits.split()
print(fruits)

果物名を入力するようにinput関数を呼び出しています。
その後に入力内容の文字列から、splitメソッドを呼び出しています。

これで、リストに分割された内容が返ってきます。
下記のように、半角スペースを入れて果物名を入力すると、リストになっていることが確認できました。

果物名:りんご メロン ぶどう
['りんご', 'メロン', 'ぶどう']

関連:・Pythonで文字列を分割する4つの方法!(split)

入力待ちのループを作る

特定の文字列が入力されるまで、ループして入力させるようにするにはwhile文を使うと良いです。

userInput = None

while userInput != '':
    userInput = input('入力:')
    print(userInput)

最初にuserInput変数をNoneを代入して用意しました。

次にwhile文でループしています。
userInput変数の内容が空文字(”)でない場合にループを続けます。

while文のループの処理の最初にinput関数で入力を待つようにしました。
これで、ループごとに毎回入力を待ってくれます。

何も入力せずにエンターを押すと、userInput変数に空文字が入るので処理が終了します。

関連:・【Python入門】while文で繰り返し(ループ)処理を行う方法!

終わりに

今回はPythonでコマンドラインからユーザーの入力を受け付ける方法について書きました。

まとめると下記のようになります。

・input関数を使って、入力待ち状態にして入力することができる
・Pythonのバージョン2ではraw_input関数を使うとできる
・input関数で入力されるのは文字列になる

コメント

タイトルとURLをコピーしました