Python で入力を整数として読み取る方法

  1. Python 2.x でユーザー入力を整数として読み取る
  2. Python 3.x でユーザー入力を整数として読み取る

Python 2.x でユーザー入力を整数として読み取る

Python 2.7 には、ユーザー入力を読み取るための 2つの関数、つまり raw_inputinput があります。

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
comments powered by Disqus