今回は、Pythonのinput関数を用いて、キーボードからの文字入力を行い、そのデータを扱いやすいように取得する方法について解説していきます。
無料オンライン相談を活用しよう!
Pythonというプログラミング言語は機械学習の人気の高まりなどもあり、様々なスクールが無料説明会を開催しています。
その中でも「Freeks(フリークス)|業界初!10,780円のサブスク型プログラミングスクール」がオススメです。Pythonを効率よく学びたいという方はまずは適性を知るためにも無料説明会を利用しましょう。
キーボードからの値を取得する方法
キーボードから値を入力するには、input関数を使うだけでできます。適当な文字を入力してみてください。
入力した文字列が変数に代入されます。
1 2 |
val = input() |
このままでは、文字を入力するタイピングがわかりませんが、input関数に引数を設定することによって、そのタイミングを把握できるようになります。
1 2 3 4 5 6 |
val = input("数字を入力してください:") # 数字を入力してください:10 print(type(val)) # <class 'str'> |
上のコードの5・6行目を見てもわかるように、数値を入力したつもりでも、すべてが文字列として扱われるため、四則演算などが行えません。
また、今のプログラムでは、すべての文字の入力が可能となっています。これを数値のみを受け付けるようにするには次のようになります。
1 2 3 4 5 6 7 8 |
while True: val = input("数字のみを入力してください:") if val.isdecimal(): val = int(val) print("入力された数字は{}です。".format(val)) break |
数値のみを入力されるまでwhile文を用いてループします。
入力された文字列を組み込み関数のisdecimal()を用いて判定し、Trueとなったときにループから抜け出すようになっています。
複数の変数を入力
特定の文字で分割
入力された文字列を特定の文字で分割する場合には、split()関数を用いるとリストに変換できで便利です。
引数を省略するとスペースをもとに文字列が分割されます。
1 2 3 4 5 6 7 8 9 |
# 「I have a pen」を入力後、リストで取得 val = input().split() print(val) # ['I', 'have', 'a', 'pen'] #「I-have-a-pen」を入力後、リストで取得 val = input().split("-") # ['I', 'have', 'a', 'pen'] |
数値型に変換
複数の変数を一度に型変換したい場合はmap関数を用いると行えます。
map関数の第一引数は、関数を指定します。後述するlambdaも用いることが可能です。その他、ユーザ定義型の関数も可能です。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
a, b = map(int, input().split()) print(a, b) print(type(a)) print(type(b)) """ 3 6 3 6 <class 'int'> <class 'int'> """ |
map関数の利用
先ほどはmap関数を用いて、複数の変数に対して型変換を行いました。
map関数は他にも様々な方法で用いることができ、非常に便利です。
1 2 3 4 5 6 7 8 9 10 11 |
def love(val): print("I love " + val) a, b = map(love, input().split()) """ you Mom I love you I love Mom """ |
まとめ
今回は、Pythonのinput関数を用いて、キーボードからの文字入力を行い、そのデータを扱いやすいように取得する方法について解説しました。
少しでも参考になれば嬉しいです。
無料の説明会を有効活用しよう!
独学での学習は孤独感を感じやすく挫折してしまう初心者も多いです。また、参考書を購入しても全く読む気にならないという方も多いはずです。
それでも、なんとかPythonの勉強を行い、高スキルなエンジニアを目指したいという方は無料で受けられるオンライン説明会に参加してみることも一つの手です。
Pythonというプログラミング言語は機械学習の人気の高まりなどもあり、様々なスクールが無料説明会を開催しています。
その中でも「Freeks(フリークス)|業界初!10,780円のサブスク型プログラミングスクール」がオススメです。Pythonを効率よく学びたいという方はまずは適性を知るためにも無料説明会を利用しましょう。