input

Функция input() позволяет получить данные от пользователя через стандартный ввод (обычно клавиатуру). Возвращает введённое пользователем значение в виде строки.

Синтаксис

input([prompt])

Аргументы

  • prompt (необязательный):
    • Что означает: Текстовый вывод, который отображается пользователю перед вводом.
    • Возможные значения: Строка, содержащая любой текст, либо пустое значение (по умолчанию).

Возвращаемое значение

Возвращает строку, введённую пользователем. Все данные из ввода интерпретируются как текст.

Примеры использования

# Простое получение пользовательского ввода
name = input("Как вас зовут? ")
print(f"Привет, {name}!")  # Пользователь вводит "Алекс", вывод: Привет, Алекс!
# Ввод чисел
number = input("Введите число: ")
print(f"Вы ввели: {int(number)}")  # Преобразуем строку в число
# Обработка пустого ввода
response = input("Нажмите Enter, чтобы продолжить... ")
if response == "":
    print("Вы ничего не ввели.")

Эквивалентный код

def pyplanet_input(prompt=""):
    # Выводит запрос и считывает ввод с клавиатуры
    print(prompt, end="", flush=True)
    return sys.stdin.readline().removesuffix("\n")

Частые ошибки

  1. Попытка использовать input() без преобразования данных:

    age = input("Введите ваш возраст: ")
    if age > 18:  # Ошибка: TypeError
        print("Совершеннолетний")
    

    Как исправить: Преобразуйте введённые данные в нужный тип:

    age = int(input("Введите ваш возраст: "))
    if age > 18:
        print("Совершеннолетний")
    

Часто задаваемые вопросы

  1. Что возвращает функция input()? Всегда возвращает строку, даже если пользователь ввёл число или другой тип данных.

  2. Можно ли использовать input() для чисел? Да, но требуется явное преобразование:

    number = int(input("Введите число: "))
    print(f"Вы ввели: {number}")
    
  3. Как обрабатывать ошибки при преобразовании типов? Используйте конструкцию try-except:

    try:
        number = int(input("Введите число: "))
        print(f"Вы ввели: {number}")
    except ValueError:
        print("Ошибка: необходимо ввести число.")
    
  4. Можно ли вывести текст без ввода? Да, просто не указывайте текст приглашения (prompt):

    print("Пользовательский ввод:")
    response = input()
    print(f"Вы ввели: {response}")
    
  5. Что делать, если нужен ввод нескольких строк? Для ввода нескольких строк используйте цикл:

    print("Введите строки. Для завершения нажмите Enter дважды.")
    lines = []
    while True:
        line = input()
        if not line:
            break
        lines.append(line)
    print("Вы ввели:")
    print("\n".join(lines))