122
Глава 7 •
Ввод данных и циклы while
Использование int() для
получения числового ввода
При использовании функции
input()
Python интерпретирует все данные, введен-
ные пользователем, как строку. В следующем сеансе интерпретатора программа
запрашивает у пользователя возраст:
>>>
age = input("How old are you? ")
How old are you?
21
>>>
age
'21'
Пользователь вводит число 21, но, когда мы запрашиваем у Python значение
age
, выводится
'21'
— представление введенного числа в строковом формате.
Кавычки, в которые заключены данные, указывают на то, что Python интерпре-
тирует ввод как строку. Но попытка использовать данные как число приведет
к ошибке:
>>>
age = input("How old are you? ")
How old are you?
21
>>>
age >= 18
Traceback (most recent call last):
File "
", line 1, in
TypeError: unorderable types: str() >= int()
Когда вы пытаетесь сравнить введенные данные с числом в точке
, Python выдает
ошибку, потому что не может сравнить строку с числом: строка
'21'
, хранящаяся
в
age
, не сравнивается с числовым значением 18; происходит ошибка
.
Проблему можно решить при помощи функции
int()
, интерпретирующей строку
как числовое значение. Функция
int()
преобразует строковое представление числа
в само число:
>>>
age = input("How old are you? ")
How old are you?
21
>>>
age = int(age)
>>>
age >= 18
True
В этом примере введенный текст
21
интерпретируется как строка, но затем он
преобразуется в числовое представление вызовом
int()
в точке
. Теперь Python
может проверить условие: сравнить переменную
age
(которая теперь содержит
числовое значение 21) с 18. Условие «значение
age
больше или равно 18» выпол-
няется, и результат проверки равен
True
.
Как использовать функцию
int()
в реальной программе? Допустим, программа
проверяет рост пользователя и определяет, достаточен ли он для катания на ат-
тракционе:
rollercoaster.py
height = input("How tall are you, in inches? ")
height = int(height)
Как работает функция input()
123
if height >= 36:
print("\nYou're tall enough to ride!")
else:
print("\nYou'll be able to ride when you're a little older.")
Программа может сравнить
height
с 36, потому что строка
height
=
int(height)
преобразует входное значение в число перед проведением сравнения. Если введен-
ное число больше или равно 36, программа сообщает пользователю, что он прошел
проверку:
How tall are you, in inches?
71
You're tall enough to ride!
Если пользователь вводит числовые данные, которые используются в вашей про-
грамме для вычислений и сравнений, обязательно преобразуйте введенное значение
в его числовой эквивалент.
Оператор
вычисления остатка
При работе с числовыми данными может пригодиться оператор вычисления остат-
ка (
%
), который делит одно число на другое и возвращает остаток:
>>>
Достарыңызбен бөлісу: