Python

Input в Python: как получить данные от пользователя

input() в Python читает данные, которые пользователь вводит в консоль. Важно помнить: input() всегда возвращает строку, даже если пользователь ввел число

Поэтому после ввода часто нужны .strip(), int(), float() и обработка ошибок

По этой теме полезно отдельно посмотреть Составьте еженедельное расписание занятий, чтобы расширить контекст и сравнить подходы

По этой теме полезно отдельно посмотреть Аннотации типов для декораторов в Python, чтобы расширить контекст и сравнить подходы

Самый простой пример

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

Программа покажет приглашение, дождется ввода и подставит введенный текст в сообщение

Убрать лишние пробелы

name = input('Ваше имя: ').strip()

if name:
    print(f'Привет, {name}')
else:
    print('имя не введено')

.strip() убирает пробелы по краям. Это помогает отличить нормальное имя от строки из одних пробелов

Ввод числа

raw_age = input('Возраст: ')
age = int(raw_age)

print(f'Через год: {age + 1}')

Если пользователь введет 25, все сработает. Если введет abc, Python выдаст ValueError

Поэтому рабочий вариант лучше писать с try/except

raw_age = input('Возраст: ')

try:
    age = int(raw_age)
    print(f'Через год: {age + 1}')
except ValueError:
    print('Введите возраст числом')

Ввод дробного числа

raw_price = input('Цена: ')

try:
    price = float(raw_price)
    print(f'Цена со скидкой: {price * 0.9:.2f}')
except ValueError:
    print('Введите цену числом')

Для дробных чисел используется float()

Если пользователь вводит числа через запятую, можно заменить запятую на точку:

raw_price = input('Цена: ').replace(',', '.')
price = float(raw_price)

Повторять запрос до правильного ввода

while True:
    raw_age = input('Возраст: ')

    try:
        age = int(raw_age)
        break
    except ValueError:
        print('Введите число, например 25')

print(f'Возраст принят: {age}')

Цикл продолжается, пока пользователь не введет корректное число

Функция для безопасного ввода

def read_positive_int(prompt):
    while True:
        raw = input(prompt)

        try:
            value = int(raw)
        except ValueError:
            print('нужно ввести целое число')
            continue

        if value <= 0:
            print('число должно быть больше нуля')
            continue

        return value

count = read_positive_int('Количество: ')
print(f'Принято: {count}')

Такой подход полезен, когда ввод числа нужен в нескольких местах программы

Мини-проект: калькулятор заказа

title = input('Товар: ').strip()
price = float(input('Цена: '))
count = int(input('Количество: '))

total = price * count

print(f'{title}: {count} x {price:.2f} = {total:.2f}')

После первого запуска добавьте проверки:

  • товар не должен быть пустым
  • цена должна быть больше нуля
  • количество должно быть целым положительным числом
  • неверный ввод не должен ломать программу без понятного сообщения

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

  • складывать строку из input() с числом без int() или float()
  • не убирать пробелы через .strip()
  • не проверять пустой ввод
  • писать огромный диалог без функций
  • не обрабатывать ValueError
  • думать, что input() подходит для паролей и секретов в любой ситуации

Что читать дальше

Для вывода результата рядом пригодится Что такое print в Python

Для условий и проверок откройте If, else и elif в Python

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

Для нормального консольного ввода почти всегда нужны .strip(), проверка пустых значений и try/except для ошибок преобразования

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x