До этого момента все наши программы работали одинаково.

Например,

print("Привет!")

или

age = 25
print(age)

Каждый запуск программы выдаёт один и тот же результат.

Но обычно программы должны уметь общаться с пользователем.

Для этого в Python существует функция input().


Получаем данные от пользователя

Самый простой пример выглядит так:

name = input("Как вас зовут? ")

Когда программа дойдёт до этой строки, она остановится и будет ждать, пока пользователь что-нибудь введёт.

Например:

Как вас зовут? Анна

После нажатия Enter введённый текст сохранится в переменной name.

Теперь можно использовать его дальше.

print(name)

Результат:

Анна

Можно сразу поздороваться

Например,

name = input("Как вас зовут? ")

print("Привет,", name)

Если пользователь введёт

Антон

то программа выведет

Привет, Антон

Получается, что одна и та же программа может работать по-разному в зависимости от введённых данных.


input() всегда возвращает строку

Попробуем написать программу:

age = input("Сколько вам лет? ")

print(age)

Если ввести

25

на экран снова попадёт

25

Но здесь есть небольшой подвох.

Для Python это не число, а строка.


Почему это важно?

Посмотрите на пример.

age = input("Возраст: ")

print(age + 1)

Кажется, что программа должна вывести возраст на один год больше.

Но вместо этого появится ошибка.

Почему?

Потому что нельзя складывать строку и число.


Как превратить строку в число?

Для этого существует функция int().

age = int(input("Возраст: "))

Теперь программа работает так:

  1. получает текст от пользователя;
  2. превращает его в число;
  3. сохраняет результат в переменной.

Теперь можно спокойно писать

print(age + 1)

Если пользователь введёт

25

то программа выведет

26

Если введено не число

А что произойдёт, если пользователь напишет

двадцать пять

или

hello

Python не сможет превратить такой текст в число и завершит программу с ошибкой.

Пока это нормально.

Чуть позже мы научимся обрабатывать подобные ситуации.


Что мы сегодня узнали

Сегодня мы сделали программу интерактивной.

  • print() выводит информацию на экран.
  • input() получает данные от пользователя.
  • Всё, что вводит пользователь, Python сначала считает строкой.
  • Чтобы получить число, используют функцию int().

Попробуйте сами

Напишите программу, которая спрашивает имя пользователя и его возраст.

После этого выведите сообщение:

Привет, Анна!
Через год тебе будет 26 лет.

Подсказка:

name = input("Как тебя зовут? ")
age = int(input("Сколько тебе лет? "))

print("Привет,", name)
print("Через год тебе будет", age + 1, "лет.")

Попробуйте:

  • ввести разные имена;
  • изменить возраст;
  • специально ввести текст вместо числа и посмотреть, что произойдёт.

Не бойтесь получать ошибки — они помогают понять, как работает программа.


Что дальше?

Теперь программа умеет получать данные от пользователя.

Но как сделать так, чтобы она выполняла разные действия в зависимости от ответа?

Например:

  • если возраст больше 18 — вывести одно сообщение;
  • иначе — другое.

Для этого в Python существуют условные операторы, с которыми мы познакомимся в следующей статье.