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でコマンドラインからユーザーの入力を受け付ける方法について書きました。
まとめると下記のようになります。
・Pythonのバージョン2ではraw_input関数を使うとできる
・input関数で入力されるのは文字列になる
コメント