Запись пользовательского ввода в переменную через input()

Раздел: Основы Python -> Инструкции по вводу

Базовая конструкция функции input()

В Python ввод с клавиатуры выполняет функция input(). Она останавливает программу, ожидает строку от пользователя и возвращает её как объект str. Чтобы сохранить полученное значение, результат обращения к input() помещают в переменную слева от знака равенства.

city = input('Город: ')
print(city)

функция input python 3 (функция input() в python 3)

Город: Самара
Самара

переменная input python (сохранение ввода в переменную python)

Переменной city присваивается строка, которую ввёл пользователь. Функция input() принимает необязательный аргумент prompt и выводит его без перевода строки. Ввод пользователя продолжается до нажатия клавиши Enter. Нажатие Enter завершает ввод, а сама клавиша в строку не попадает.

Как получить из ввода целое число?

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

num_1 = int(input('Первое слагаемое: '))
num_2 = int(input('Второе слагаемое: '))
result = num_1 + num_2
print(result)
Первое слагаемое: 12
Второе слагаемое: 9
21

Такой вариант подходит, когда заранее известно, что пользователь введёт цифры. При нечисловом вводе появится ValueError.

Почему при вводе слова возникает ValueError?

Функция int() умеет преобразовывать только строки, которые содержат целое число. Строка вида 'abc' не является числом, поэтому интерпретатор прекращает выполнение. Чтобы избежать падения программы, значение сначала проверяют методом isdigit() или используют конструкцию try/except.

user_text = input('Число: ')
if user_text.isdigit():
    number = int(user_text)
    print(number * 2)
else:
    print('Не число')
Число: 7
14

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

Для значений с десятичной точкой применяют float().

temperature = float(input('Температура: '))
print(temperature + 1.5)
Температура: 36.6
38.1

Такой вариант нужен для научных расчётов, финансовых операций и работы с измерениями.

Как сохранить ввод, избавившись от лишних пробелов?

Метод strip() удаляет пробелы, табуляцию и перевод строки с начала и конца полученной строки. Это удобно при обработке команд или названий.

command = input('Команда: ').strip()
print('Выбрано:', command)
Команда:   status
Выбрано: status

Если нужно удалять пробелы только в начале строки, применяют lstrip(), только в конце строки: rstrip().

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

Метод split() разбивает строку по пробельным символам и возвращает список строк. Число переменных слева должно совпадать с количеством слов в строке.

day, month, year = input('Дата: ').split()
print(f'День: {day}, месяц: {month}, год: {year}')
Дата: 15 мая 2025
День: 15, месяц: мая, год: 2025

Для ввода заранее неизвестного количества чисел используют split() вместе с map() и int().

points = list(map(int, input('Баллы: ').split()))
print(points)
Баллы: 8 9 10
[8, 9, 10]

Такой формат удобен при заполнении списков и матриц.

Что делать при ошибке ValueError: too many values to unpack?

Это сообщение появляется, когда в строке больше значений, чем переменных слева. Например, если пользователь ввёл '15 мая 2025', а переменных только day и month. Количество переменных должно совпадать с числом элементов после split(), либо можно использовать список.

parts = input('Дата: ').split()
print(parts)
Дата: 15 мая 2025
['15', 'мая', '2025']

Как сохранить строку для ввода с несколькими словами?

input() возвращает всю строку целиком, поэтому пробелы между словами сохраняются. Никаких дополнительных действий не требуется.

full_name = input('Полное имя: ')
print(full_name)
Полное имя: Анна Мария
Анна Мария

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

Как превратить ответ пользователя в логическое значение?

Прямое преобразование bool('False') вернёт True, поэтому для флагов применяют сравнение строк.

answer = input('Да или нет: ').strip().lower()
is_ready = answer == 'да' or answer == 'yes'
print(is_ready)
Да или нет: да
True

Такой способ превращает ответ в True только когда введено одно из заданных значений.

Расширенные примеры охватывают разные ситуации: от простого форматирования до считывания потока строк.

Имя и возраст

Пример
name = input('Имя: ')
age = input('Возраст: ')
print(f'Пользователь: {name}, возраст: {age}')
Имя: Елена
Возраст: 23
Пользователь: Елена, возраст: 23

Обе переменные сохраняются как строки.

Проверка возрастного ограничения

Пример
age_text = input('Возраст: ')
age = int(age_text)
if age >= 18:
    result_text = 'Доступ открыт'
else:
    result_text = 'Доступ закрыт'
print(result_text)
Возраст: 20
Доступ открыт

Преобразование int() даёт возможность сравнивать возраст с числом.

Вычисление стоимости

Пример
price = float(input('Цена товара: '))
quantity = int(input('Количество: '))
total = price * quantity
print(f'Итого: {total:.2f}')
Цена товара: 49.90
Количество: 3
Итого: 149.70

Здесь input() сохраняется сразу в нужном типе: float для цены, int для количества.

Разделитель запятая

Пример
raw = input('Числа через запятую: ')
numbers = [int(item.strip()) for item in raw.split(',')]
print('Сумма:', sum(numbers))
Числа через запятую: 2, 4, 6
Сумма: 12

Такой приём полезен для строк, которые содержат запятые и лишние пробелы.

Цикл до стоп-слова

Пример
numbers = []
while True:
    part = input('Следующее число или end: ')
    if part.lower() == 'end':
        break
    numbers.append(int(part))
print(numbers)
Следующее число или end: 5
Следующее число или end: 8
Следующее число или end: end
[5, 8]

Цикл продолжает сохранять введённые значения, пока пользователь не укажет стоп-слово.

Несколько строк из системного ввода

Пример
import sys

result = []
for line in sys.stdin:
    line = line.strip()
    if line:
        result.append(line)
print(result)
alpha
beta

gamma
['alpha', 'beta', 'gamma']

Такой вариант применяется при передаче данных в программу через конвейер или файл.

Ввод с защитой от вывода на экран

Пример
import getpass

password = getpass.getpass('Пароль: ')
print('Длина пароля:', len(password))
Пароль: 
Длина пароля: 6

Модуль getpass не отображает вводимые символы, что удобно для секретных значений.

Устойчивое чтение целого числа

Пример
def read_integer(prompt):
    while True:
        raw = input(prompt)
        try:
            return int(raw)
        except ValueError:
            print('Ожидалось целое число.')

age = read_integer('Возраст: ')
print('Возраст через 5 лет:', age + 5)
Возраст: сорок
Ожидалось целое число.
Возраст: 40
Возраст через 5 лет: 45

Такая функция запрашивает данные до тех пор, пока не получит корректное число.

Сохранение ввода в переменную Python - comments

En
переменная input python (python)