Python で入力を整数として読み取る方法
胡金庫
2023年1月30日
Python 2.x でユーザー入力を整数として読み取る
Python 2.7 には、ユーザー入力を読み取るための 2つの関数、つまり raw_input
と input
があります。
raw_input
はユーザー入力を生の文字列として読み取り、その戻り値は単純 string
です。
input
はユーザー入力を取得してから文字列を評価し、評価の結果が返されます。
例えば、
>>> number = raw_input("Enter a number: ")
Enter a number: 1 + 1
>>> number, type(number)
('1 + 1', <type 'str'>)
>>> number = input("Enter a number: ")
Enter a number: 1 + 1
>>> number, type(number)
(2, <type 'int'>)
警告
Python 2.x で input
を使用する場合は、ユーザーが入力した任意の内容をコンパイルすることを評価するので、安全問題が生じる可能性があると考えてください。例を挙げて、もしあなたがすでに os
に転入したとしたら、ユーザーに入力を要求します。
os
プログラムにすでにインポートしていて、ユーザー入力を求めている場合、
>>> number = input("Enter a number: ")
Enter a number: os.remove(*.*)
入力 os.remove(*.*)
が評価され、通知なしで作業ディレクトリのすべてのファイルが削除されます!
Python 3.x でユーザー入力を整数として読み取る
raw_input
は Python 3.x で廃止されています。Python 3.x で’input’に置き換えられています。ユーザー入力文字列のみを取得しますが、上記のセキュリティリスクのため、文字列は評価しません。
したがって、ユーザー入力を文字列から整数に明示的に変換する必要があります。
>>> number = int(input("Enter a number: "))
Enter a number: 123
>>> number
123
著者: 胡金庫