Изучаем Python | страница 89
prompt += "\nWhat is your first name? "
name = input(prompt)
print("\nHello, " + name + "!")
В этом примере продемонстрирован один из способов построения длинных строк. Первая часть длинного сообщения сохраняется в переменной prompt. Затем оператор += объединяет текст, хранящийся в prompt, с новым фрагментом текста.
Теперь содержимое prompt занимает две строки (вопросительный знак снова отделяется от ввода пробелом):
If you tell us who you are, we can personalize the messages you see.
What is your first name? Eric
Hello, Eric!
Использование 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
(1) >>> age >= 18
Traceback (most recent call last):
File "
(2)TypeError: unorderable types: str() >= int()
Когда вы пытаетесь сравнить введенные данные с числом в точке (1) , Python выдает ошибку, потому что не может сравнить строку с числом: строка '21', хранящаяся в age, не сравнивается с числовым значением 18; происходит ошибка (2).
Проблему можно решить при помощи функции int(), интерпретирующей строку как числовое значение. Функция int() преобразует строковое представление числа в само число:
>>> age = input("How old are you? ")
How old are you? 21
(1) >>> age = int(age)
>>> age >= 18
True
В этом примере введенный текст 21 интерпретируется как строка, но затем он преобразуется в числовое представление вызовом int() в точке (1) . Теперь Python может проверить условие: сравнить переменную age (которая теперь содержит числовое значение 21) с 18. Условие «значение age больше или равно 18» выполняется, и результат проверки равен True.
Как использовать функцию int() в реальной программе? Допустим, программа проверяет рост пользователя и определяет, достаточен ли он для катания на аттракционе:
rollercoaster.py
height = input("How tall are you, in inches? ")
height = int(height)
if height >= 36: