/
Вопросы и ответы
/
Python
/

Что делает функция input в Python?

Что делает функция input в Python?

4 года назад

Andrey Moshkov

Ответы

4

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

1
2
x = input() # Bob
print('Hello, ' + x) # => 'Hello, Bob'

Также в качестве необязательного аргумента можно передать строку-подсказку, показывающую какую информацию следует ввести:

1
2
3
4
x = input('Enter your name: ')
# => Enter your name:
# Bob
print('Hello, ' + x) # => 'Hello, Bob'

4 года назад

Владимир Устянивский

1

Функция input() запрашивает строку ввода у пользователя и возвращает её в качестве результата. В функцию можно передать строку-приглашение, которая будет выведена на экран перед ожиданием ввода. Введенные данные всегда возвращаются в виде строки, даже если пользователь ввел число.

  • input(prompt)

,где prompt (необязательный) — строка, которая будет выведена на экран перед ожиданием ввода.

Пример:

1
2
3
a = input("Введите первое число: ") # напишем 2
b = input("Введите второе число: ") # напишем 2
print("Сумма чисел:", a + b) выведет 22 тк 2 и 2 это строки и он их склеил

Функция input всегда возвращает строку и даже если пользователь ввел число, оно будет возвращено в виде строки. Если требуется работать с введенными данными как с числами, нужно явно преобразовать строку в число используя функцию int:

Пример:

1
2
3
a = int(input("Введите первое число: "))# напишем 2
b = int(input("Введите второе число: "))# напишем 2
print("Сумма чисел:", a + b)# Ответ 4

2 года назад

Алёна Шереметьева

0

input() останавливает программу, ждёт, пока пользователь введёт текст и нажмёт Enter, и возвращает введённое:

1
2
name = input('Как вас зовут? ')
print(f'Привет, {name}!')

Строку-подсказку 'Как вас зовут? ' функция выводит перед ожиданием ввода. Пробел в конце подсказки отделяет её от ответа.

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

Даже если ввели число:

1
2
age = input('Возраст: ')   # ввели 20
print(age + 1)             # TypeError: can only concatenate str (not "int") to str

Переведите строку в число:

1
2
age = int(input('Возраст: '))
price = float(input('Цена: '))

Если ввести не число, int() выдаст ValueError. Проверка ввода:

1
2
3
4
5
text = input('Возраст: ')
if text.isdigit():
    age = int(text)
else:
    print('Нужно целое число')

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

1
2
a, b = map(int, input().split())    # ввод: 3 5
numbers = list(map(int, input().split()))  # ввод: 1 2 3 4

split() делит строку по пробелам, map(int, ...) переводит каждую часть в число. Так читают данные в задачах на платформах с автопроверкой.

Лишние пробелы

Пользователь может случайно поставить пробел в начале или в конце. Уберите их: input().strip().

Ввод пароля

input() показывает вводимые символы. Для пароля используйте модуль getpass:

1
2
3
from getpass import getpass

password = getpass('Пароль: ')

Когда input() не работает

  • В онлайн-песочницах и некоторых IDE без интерактивной консоли программа зависнет или упадёт с EOFError.
  • В Python 2 input() выполнял введённое как код, а строку возвращал raw_input(). В Python 3 raw_input() нет.

Ввод и вывод данных разбирают в бесплатном курсе «Основы Python».

10 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845