Синтаксис функции input() в языке Python

Раздел: Основы Python -> Синтаксис

Функция input() в Python предназначена для получения данных от пользователя через стандартный поток ввода (обычно клавиатура). Вызов input() приостанавливает выполнение программы до тех пор, пока пользователь не введет строку и не нажмет Enter. Возвращаемое значение всегда является строкой, даже если введены цифры. Рассмотрим базовый синтаксис и различные сценарии использования.

Основной синтаксис функции input()

Синтаксис: input([prompt]). Необязательный аргумент prompt представляет собой строку, которая выводится перед ожиданием ввода. Функция возвращает введенную строку, из которой удален завершающий символ новой строки.

name = input("Введите ваше имя: ")
print(f"Привет, {name}!")

Python method (методы в python)

Введите ваше имя: Анна
Привет, Анна!

напишите оператор ввода в python (оператор ввода в python)

Как получить числовой ввод?

Поскольку input() возвращает строку, для работы с числами требуется явное преобразование с помощью int() или float().

age = int(input("Сколько вам лет? "))
print(f"Через год вам будет {age + 1}.")

Python синтаксис input (синтаксис функции input)

Сколько вам лет? 25
Через год вам будет 26.

Проблема: если пользователь введет нечисловое значение (например, "двадцать пять"), возникнет исключение ValueError.

Решение: обернуть преобразование в блок try/except.

try:
    age = int(input("Сколько вам лет? "))
    print(f"Через год вам будет {age + 1}.")
except ValueError:
    print("Ошибка: необходимо ввести целое число.")

Как ввести несколько значений в одной строке?

Метод split() разбивает строку по пробелам (или другому разделителю). В сочетании с map() можно сразу преобразовать части в нужный тип.

a, b = map(int, input("Введите два числа через пробел: ").split())
print(f"Сумма: {a + b}")
Введите два числа через пробел: 10 20
Сумма: 30

Проблема: если количество введенных значений не равно числу переменных, возникнет ValueError.

Решение: либо использовать список list(map(...)), либо организовать проверку длины.

Как организовать повторный ввод до получения корректного значения?

Цикл while True с попыткой преобразования внутри try продолжает запрос, пока не будет введено корректное значение.

while True:
    try:
        age = int(input("Введите возраст (целое число): "))
        break
    except ValueError:
        print("Ошибка. Попробуйте еще раз.")
print(f"Возраст: {age}")
Введите возраст (целое число): abc
Ошибка. Попробуйте еще раз.
Введите возраст (целое число): 30
Возраст: 30

Как скрыть вводимый текст (например, пароль)?

Функция getpass() из модуля getpass не отображает вводимые символы на экране.

import getpass
password = getpass.getpass("Введите пароль: ")
print("Пароль принят.")
Введите пароль:
Пароль принят.

Проблема: в некоторых средах (например, IDLE) getpass может не работать корректно. В таком случае используется обычный input().

Как обработать пустой ввод?

Пустая строка (пользователь просто нажал Enter) может быть проверена через if not user_input.

name = input("Введите имя (или Enter для пропуска): ")
if not name:
    name = "Гость"
print(f"Привет, {name}!")
Введите имя (или Enter для пропуска):
Привет, Гость!

Расширенные примеры работы с input()

Пример 1. Ввод списка чисел с плавающей точкой и проверка диапазона.

Пример
# Запрос у пользователя трех чисел от 0 до 1
while True:
    try:
        values = list(map(float, input("Введите три числа от 0 до 1 через пробел: ").split()))
        if len(values) != 3:
            print("Требуется ровно три числа.")
            continue
        if any(v < 0 or v > 1 for v in values):
            print("Числа должны быть в диапазоне [0,1].")
            continue
        break
    except ValueError:
        print("Ошибка: введите числа, разделенные пробелами.")
print("Введенные значения:", values)
Введите три числа от 0 до 1 через пробел: 0.5 1.2 0.3
Числа должны быть в диапазоне [0,1].
Введите три числа от 0 до 1 через пробел: 0.5 0.2 0.8
Введенные значения: [0.5, 0.2, 0.8]

Пример 2. Ввод строки с разделителем-запятой и удаление лишних пробелов.

Пример
items = input("Введите элементы через запятую: ").split(',')
items = [item.strip() for item in items]
print("Список элементов:", items)
Введите элементы через запятую: яблоко, груша,  вишня
Список элементов: ['яблоко', 'груша', 'вишня']

Пример 3. Ввод пароля с маскировкой (альтернативный способ, если getpass не поддерживается).

Пример
import sys
password = ""
print("Введите пароль (символы не отображаются): ", end='', flush=True)
while True:
    ch = sys.stdin.read(1)  # читаем по одному символу
    if ch == '\n':
        break
    password += ch
    print('*', end='', flush=True)
print()
print("Пароль принят.")
Введите пароль (символы не отображаются):
***
Пароль принят.

Пример 4. Ввод с проверкой с помощью регулярного выражения (адрес электронной почты).

Пример
import re
pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
while True:
    email = input("Введите email: ").strip()
    if re.match(pattern, email):
        print("Email корректен.")
        break
    else:
        print("Некорректный формат email. Попробуйте снова.")
Введите email: user@domain
Некорректный формат email. Попробуйте снова.
Введите email: user@domain.com
Email корректен.

Пример 5. Ввод нескольких строк до пустой строки (многострочный ввод).

Пример
lines = []
print("Вводите строки (пустая строка завершает ввод):")
while True:
    line = input()
    if line == "":
        break
    lines.append(line)
print("Введенные строки:")
for l in lines:
    print(l)
Вводите строки (пустая строка завершает ввод):
Первая строка
Вторая строка

Введенные строки:
Первая строка
Вторая строка

Синтаксис функции input - comments

En
Python синтаксис input (python)