Глава 8 · Играем с буквами и словами

Получение ввода от пользователей

Начало автоматизации: программа, которая спрашивает — и реагирует на ответ.

До сих пор все данные в программах были «зашиты» прямо в код. Пора научиться получать данные от самого пользователя во время выполнения программы — с этого момента ваши программы становятся по-настоящему интерактивными.

vvod.py
name = input("Как вас зовут? ")
print(f"Привет, {name}!")

input() останавливает программу и ждёт, пока пользователь наберёт текст и нажмёт Enter — то, что он ввёл, возвращается как обычная строка.

В ноутбуке практики input() выглядит немного иначе
Jupyter Notebook выполняется автоматически, без живого человека за клавиатурой, поэтому в ноутбуке практики input() подставляет заранее заготовленные ответы — сам код при этом выглядит и работает точно так же, как в обычном .py-файле, который вы запускаете сами.

Преобразование строки в int или float

input() всегда возвращает строку — даже если пользователь ввёл число. Чтобы посчитать что-то с этим значением, его нужно преобразовать (как мы делали в главе 4):

vvod_chisla.py
age_text = input("Сколько вам лет? ")
age = int(age_text)
print(f"Через 5 лет вам будет {age + 5}.")
Частая ошибка новичков
Если забыть про int() и написать age + 5, где age — строка из input(), Python выдаст TypeError: складывать строку и число напрямую нельзя.
Практика в Jupyter Notebook
08-07-vvod-polzovatelya.ipynb · input() и преобразование типов
Открыть ноутбук →