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")
Частые ошибки
Попытка использовать input() без преобразования данных:
age = input("Введите ваш возраст: ") if age > 18: # Ошибка: TypeError print("Совершеннолетний")
Как исправить: Преобразуйте введённые данные в нужный тип:
age = int(input("Введите ваш возраст: ")) if age > 18: print("Совершеннолетний")
Часто задаваемые вопросы
Что возвращает функция input()? Всегда возвращает строку, даже если пользователь ввёл число или другой тип данных.
Можно ли использовать input() для чисел? Да, но требуется явное преобразование:
number = int(input("Введите число: ")) print(f"Вы ввели: {number}")
Как обрабатывать ошибки при преобразовании типов? Используйте конструкцию try-except:
try: number = int(input("Введите число: ")) print(f"Вы ввели: {number}") except ValueError: print("Ошибка: необходимо ввести число.")
Можно ли вывести текст без ввода? Да, просто не указывайте текст приглашения (prompt):
print("Пользовательский ввод:") response = input() print(f"Вы ввели: {response}")
Что делать, если нужен ввод нескольких строк? Для ввода нескольких строк используйте цикл:
print("Введите строки. Для завершения нажмите Enter дважды.") lines = [] while True: line = input() if not line: break lines.append(line) print("Вы ввели:") print("\n".join(lines))