どうも!リョクちゃです。
今回は、Pythonで入力値を受け取るさまざまな方法を紹介していきます。
入力値については、以下の記事でもまとめているので
参考にしてみてください。
ちなみに前回の記事はこちら
目次
さまざまな入力の受け取り方
シンプルに入力値を受け取る
最初に、シンプルに入力値を受け取るには
1 |
a = input() |
と書くことで、変数aに入力した値を代入することができます。
以下のコードを例にコンソールウィンドウで表示させてみると、
1 2 |
a = input("値を入力してください : ") print("入力された値は{}です。".format(a)) |
input()で入力された値は、文字列型になるので、これは忘れずに覚えておきましょう。
input()で受け取った値を型変換して受け取る
input()で受け取った値は文字列型になると説明しました。
だけれど、文字列型以外で整数型や浮動小数点数型で取得したいといった場合もあります。
そんな時は、
とすれば、文字列型で受け取った数字を型変換して受け取ることができます。
プログラムコンテストの練習問題での入力値の受け取りに使えたりします。
例として、以下のコードを走らせてみます。
1 2 3 4 5 6 |
a = input("値を入力してください : ") print("入力された値の型は{}です。".format(type(a))) b = int(input("値を入力してください : ")) print("入力された値の型は{}です。".format(type(b))) |
実行すると、
変数aは、input()でそのまま受け取っています。
変数bは、int(input())として、input()で受け取った数字をint型に変換しています。
ここで変数bに”abc”と入力した場合、プログラムはエラーを起こします。
なぜならば、abcはint型に変換できないからです。
注意しながら使いましょう。
複数の変数で入力を受け取る
複数の変数に複数の入力を受け取りたい場合は、以下のようにして受け取ります。
1 |
a, b, c = input().rstrip().split() |
これは与えられる入力が半角スペース区切りの時に有効です。
input()で受け取った値に対して、rstrip()関数で右端の空白を除去し、
split()関数で半角スペースを区切り文字として分割を行っています。
分割をした結果、左から順に分割した値をそれぞれa,b,cに代入しています。
この一連の流れをinput().rstrip().split()で行っています。
例えば、入力値がカンマ区切りで与えられる場合、以下の時ですね。
apple,bacon,chocolate
この場合は、
1 |
a, b, c = input().rstrip().split(',') |
となります。
複数の変数で受け取るときに型変換したい
複数の変数で入力を受け取るときにあらかじめ、
型変換して受け取りたいときもあるかと思います。
こんなとき、どうしたらいいでしょう?
まず考えつくのが、
1 |
a, b, c = int(input().rstrip().split()) |
ではないでしょうか?
これだとエラーが出てしまいます。
input().rstrip().split()の戻り値が配列であり、
配列に対してintで型変換をしようとしているからエラーになってしまいます。
では、複数の変数に型変換した状態で入力を受け取りたいときはどうしたらよいでしょうか?
そんなときは、map()関数を使います。
map()関数は、引数として、map(“変換する型”, 変換したい配列)とすることで、
配列の中身を変換する型に合わせて変換をしてくれちゃいます。
なかなかに便利!
使い方は、
1 |
a, b, c = map(int, input().rstrip().split()) |
こうすることで、半角スペース区切りで受け取った複数の入力値をint型に変換して、
受け取ることができます。
※入力された値が型変換できる値でないとエラーになります。
まとめ
さまざまな入力の受け取り方について、
主に使うであろう方法をピックアップしてまとめてみました。
何かしらの参考になれば嬉しいです。
入力の受け取り方は、入力する側の視点に立って考えることで、よりユーザライクな
アプリケーション作りができるようになると思います。
また、プログラミングコンテストの問題においても活用できると思うので、
使ってもらえたらなと思います。
最後までお読みいただきありがとうございます