Как читать пользовательский ввод как целые числа на Python

  1. Пользовательский ввод на Python 2.x читается как целое число
  2. Читайте пользовательский ввод как целые числа на Python 3.x

В этом уроке мы научимся читать пользовательский ввод как целые числа на Python.

Пользовательский ввод на Python 2.x читается как целое число

На Python 2.7 есть две функции для чтения пользовательского ввода, а именно 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'>)
Предупреждение

Подумайте дважды, когда вы используете input на Python 2.x. Это может навязать проблемы с безопасностью, потому что вход оценивает любой тип пользователя.

Допустим, если вы уже импортировали os в вашу программу, а затем она запрашивает пользовательский ввод,

>>> number = input("Enter a number: ")
Enter a number: os.remove(*.*)

Ваш ввод os.remove(*.*) будет обработан и удалит все файлы в рабочем словаре без предварительного уведомления!

Читайте пользовательский ввод как целые числа на Python 3.x

raw_input устарел на Python 3.x и заменён на input на Python 3.x. Он получает только пользовательскую строку ввода, но не оценивает строку из-за риска безопасности, как описано выше.

Поэтому необходимо явно конвертировать пользовательский ввод из строки в целые числа.

>>> number = int(input("Enter a number: "))
Enter a number: 123
>>> number
123
comments powered by Disqus