Оператор ввода в Python: руководство

    Команда Simple-Server
    03.06.2026
    7 мин

    Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.

    Как работает оператор ввода данных Python

    Эта функция работает следующим образом:

    user_name = input('Введите свое имя: ') user_age = int(input('Сколько вам лет? '))

    Сначала мы просим пользователя указать имя, а затем возраст, и оба этих ввода реализуются с помощью специального оператора, который принимает введенные значения и записывает их в переменные user_name и user_age. А далее мы работаем с этими значениями. Например, можно создать условие для входа на сайт по возрасту (для этого нам понадобится перевести значение возраста в целое число при помощи инструкции **int()**) и написать приветствие, используя введенное имя пользователя:

    if user_age < 18: print('Извините, но вход только для совершеннолетних') else: print('Добро пожаловать на сайт,', user_name, '!')

    А что будет, когда int() примет пустое значение? Например, если пользователь нажмет Enter. Допишем программу и посмотрим:

    user_name = input('Введите свое имя: ') user_age = int(input('Сколько вам лет? ')) if user_age < 18: print('Извините, но вход только для совершеннолетних') else: print('Добро пожаловать на сайт,', user_name, '!') input('Нажмите Enter для перехода в меню') print('Добро пожаловать в меню')

    При нажатии Enter программа переходит к следующей строке кода. А если ее нет, то выполняется выход из программы: такова логика работы функции. Поэтому последняя строка может быть такой:

    input('Нажмите Enter для выхода')

    И, если никаких строк в программе больше нет, произойдет выход. Вот полная версия программы:

    user_name = input('Введите свое имя: ') user_age = int(input('Сколько вам лет? ')) if user_age < 18: print('Извините, но вход только для совершеннолетних') else: print('Добро пожаловать на сайт,', user_name, '!') input('Нажмите Enter для перехода в меню') print('Добро пожаловать в меню') input('Нажмите Enter для выхода')

    Если пользователь укажет разрешенный возраст, то увидит текст в блоке **else** , а если нет, то только в блоке **if** , а затем завершающее сообщение, которое высветится в конце для всех: Нажмите Enter для выхода. В программе оператор ввода используется 4 раза, причем в двух последних случаях он не принимает никаких значений, а нужен для перехода к следующей части кода и для выхода из программы.

    Выше мы написали готовую программу, но можно делать это построчно и в интерпретаторе Python. Правда в этом случае, чтобы переходить к написанию следующих строк кода, нам придется вводить данные сразу же:

    >>> user_name = input('Введите свое имя: ') Введите свое имя: Вася >>> user_age = int(input('Сколько вам лет? ')) Сколько вам лет? 18

    И так далее. Код тоже будет исполняться, а значения записываться в переменные, и таким способом можно тестировать отдельные блоки. Только помните, что значения будут сохраняться только до выхода из интерактивного режима, поэтому желательно параллельно дублировать код в файл с расширением _.py_.

    Методы преобразования ввода: int(), float(), split()

    В некоторых случаях необходимо преобразовать введенные данные в определенный тип: например, в целое число, рациональное число с запятой или в строку. С первым типом преобразования мы уже познакомились в прошлом примере:

    user_age = int(input('Сколько вам лет? '))

    Инструкция **int()** переводит значение в целочисленное, позволяя интерпретатору Python оперировать с ним как с числовым типом (цифры, введенные по умолчанию, не являются такими объектами, поэтому Питону нужна дополнительная инструкция). Добавим, что присвоение числовым переменным целочисленного значения реализуется и более длинным способом:

    user_age = input('Сколько вам лет? ') user_age = int(user_age)

    Конечно, первый способ удобнее, но зато подробная запись более наглядна, что полезно для понимания работы функций и инструкций.

    Для преобразования ввода в рациональные числа с плавающей запятой используется инструкция **float()** :

    height = float(input('Введите свой рост в формате 1.72: ')) weight = float(input('Введите точный вес (до 0,1 кг) в формате 80.3: ')) height = input('Введите свой рост в формате 1.72: ') height = float(height) weight = input('Введите точный вес (до 0,1 кг) в формате 80.3: ') weight = float(weight)

    Теперь программа преобразует введенные числа в числа с плавающей запятой и затем сможет оперировать ими в расчетах.

    Инструкция **split()** позволяет преобразовывать вводимые слова в списки. Вот как она работает:

    animals = input('Введите названия любимых животных через пробел: ').split() print('Вот они в виде списка:', animals) Введите названия любимых животных через пробел: кот собака заяц лиса медведь Вот они в виде списка: ['кот', 'собака', 'заяц', 'лиса', 'медведь']

    Нередко случается, что пользователи ошибаются при вводе или вводят некорректные символы намеренно. В этом случае неверный ввод может спровоцировать вылет:

    >>> height = float(input('Введите свой рост в формате 1.72: ')) Введите свой рост в формате 1.72: 1ю72 Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> height = float(input('Введите свой рост в формате 1.72: ')) ValueError: could not convert string to float: '1ю72'

    Появилась ошибка, в описании которой указано, что интерпретатор не может преобразовать строку в число. Поэтому для таких случаев мы должны предусмотреть защиту. Реализуется она с помощью условной конструкции **try-except** :

    try: height = float(input('Введите свой рост в формате 1.72: ')) except ValueError: height = float(input('Введите свой рост в указанном формате: '))

    Теперь вспомним нашу первую программу и сделаем более надежной и ее, переписав блок кода с вводом возраста таким образом:

    try: user_age = int(input('Сколько вам лет? ')) except ValueError: user_age = int(input('Введите число: '))

    Однако при повторной ошибке ввода такие программы всё равно вылетят. Для максимальной устойчивости можно организовать ввод с использованием цикла:

    while True: try: height = float(input('Введите свой рост в формате 1.72: ')) break except ValueError: print('Давайте ещё разок,') continue print('Спасибо!')

    Мы использовали цикл **while** с инструкциями **break** и **continue**. Теперь программа работает так: если введенное значение корректно, цикл прерывается (действует оператор **break**) и программа переходит к завершающему блоку кода: _print('Спасибо!')_. Если же введенное значение нельзя преобразовать в число с плавающей запятой, мы обрабатываем ошибку _ValueError_ при помощи исключения **except** и инструкции **continue**. Последняя не позволяет программе вылетать после очередной ошибки ввода, а возвращает ее к началу цикла. В результате, поскольку условие **try** не выполняется, программа будет предлагать пользователю ввести данные до тех пор, пока он не сделает это корректно.

    Для устойчивой к ошибкам программы с возрастом полный код будет выглядеть так:

    user_name = input('Введите свое имя: ') while True: try: user_age = int(input('Сколько вам лет? ')) break except ValueError: print('А если серьезно?') continue if user_age < 18: print('Извините, но вход только для совершеннолетних') else: print('Добро пожаловать на сайт,', user_name, '!') input('Нажмите Enter для перехода в меню') print('Добро пожаловать в меню') input('Нажмите Enter для выхода')

    Нужен сервер для практики? Арендуйте VPS/VDS в России — root-доступ, NVMe, DDoS-защита и поддержка 24/7.

    VPS для проекта

    VPS с root-доступом, NVMe и поддержкой 24/7 на Simple-Server.

    StarterVDS

    490

    в месяц

    1 ядро

    1 ГБ RAM

    20 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Безлимитный трафик
    Заказать VPS
    Рекомендуем

    PerformanceVDS

    1190

    в месяц

    2 ядра

    4 ГБ RAM

    60 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Базовая DDoS-защита
    Заказать VPS

    Нужна другая конфигурация или чистый VPS без панели?

    Все тарифы VPS

    Похожие статьи, которые могут быть вам интересны