Python3で標準入力を数値で受け取る方法
Python3で標準入力を数値で受け取る方法です。Python3系では input()
で標準入力となります。
標準入力の基本
以下のプログラムを実行すると…。
val = input('>>> ') print(val) print(type(val))
「11」を入力してあたかも数値を受け取ったように見えますが、type()
で調べてみると実態は文字列型です。基本的に文字列型で受け取ります。
[ad#top-1]
数値で受け取る場合
もしこれを数値として受け取る場合は int()
を使って数値変換してあげるだけです。
val = int(input('>>> ')) print(val) print(type(val))
int型として受け取りました。int()
意外にも、float()
で浮動小数点数にも変換できます。
これだと数値意外の入力でエラーになるので…
このままだと、文字列を入力してしまうと以下のようにエラーが出てしまうので、入力した内容に応じてint型または文字列型に変換するようにしたいと思います。
プログラムは以下の通り。一旦文字列型で受け取っておいて、数値に変換可能(val.isdecimal()==True
)であれば数値変換してあげれば良いです。
val = input('>>> ') if val.isdecimal()==True: val = int(val) print(val) print(type(val))
以下の通り数値を入れれば数値として受け取り、文字列を入れれば文字列として受け取ってくれます。
[ad#ad-1]
スポンサーリンク