<MyRusakov.ru />

WordPress 6 с Нуля до Гуру

WordPress 6 с Нуля до Гуру

Этот курс научит Вас созданию самых разных сайтов на самой популярной в мире CMS - WordPress. Вы увидите установку и настройку локального сервера, разбор каждой настройки, каждой кнопки и каждого пункта меню в панели WordPress.

Также Вы получите и всю практику, поскольку прямо в курсе с нуля создаётся полноценный Интернет-магазин, который затем публикуется в Интернете. И всё это прямо на Ваших глазах.

Помимо уроков к курсу идут упражнения для закрепления материала.

И, наконец, к курсу идёт ценнейший Бонус по тому, как используя ChatGPT и создавая контент для сайта, можно выйти на пассивный доход. Вы наглядно увидите, как зарегистрироваться в ChatGPT (в том числе, и если Вы из России), как правильно выбрать тему для сайта, как правильно генерировать статьи для него(чтобы они индексировались поисковыми системами) и как правильно монетизировать трафик на сайте.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

input в Python: ввод данных с клавиатуры, преобразование типов и проверка значений

input в Python: ввод данных с клавиатуры, преобразование типов и проверка значений

input в Python — один из первых инструментов, с которым сталкивается новичок. С его помощью программа может задавать вопросы пользователю и получать ответы прямо из консоли. Несмотря на простоту, у input() есть важные особенности: функция всегда возвращает строку, может выбросить ошибку при отсутствии ввода и требует аккуратного преобразования типов.

Базовый синтаксис input()

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

name = input('Как вас зовут? ')
print('Привет, ' + name + '!')

Если пользователь введёт Анна, программа выведет:

Привет, Анна!

Подсказка не добавляет перенос строки автоматически. Если он нужен, укажите его явно:

answer = input('Введите команду:\n> ')

Главное правило: input() всегда возвращает строку

Даже если пользователь вводит число, Python получает его как строку. Это самая частая ошибка при изучении функции input в Python.

age = input('Введите возраст: ')
print(type(age))

Если ввести 25, результат будет:

<class 'str'>

Поэтому такой код приведёт к ошибке:

age = input('Введите возраст: ')
print(age + 1)  # TypeError: можно сложить строку со строкой, но не с числом

Правильный вариант — преобразовать строку в число:

age = int(input('Введите возраст: '))
print(age + 1)

Ввод целых и дробных чисел

Для целых чисел используйте int(), для дробных — float().

count = int(input('Сколько товаров? '))
price = float(input('Цена одного товара: '))

total = count * price
print('Итого:', total)

Важно: float() ожидает точку, а не запятую. То есть нужно вводить 12.5, а не 12,5. Если хотите поддержать запятую, замените её перед преобразованием:

text = input('Введите цену: ')
price = float(text.replace(',', '.'))
print(price)

Как безопасно проверять ввод пользователя

Пользователь может ввести что угодно: пустую строку, буквы вместо числа, пробелы. Поэтому в реальных программах лучше не доверять вводу напрямую.

while True:
    text = input('Введите целое число: ')

    try:
        number = int(text)
        break
    except ValueError:
        print('Ошибка: нужно ввести именно целое число.')

print('Вы ввели:', number)

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

Проверка диапазона значений

Часто мало проверить, что введено число. Например, возраст должен быть в разумных пределах, а оценка — от 1 до 5.

while True:
    try:
        rating = int(input('Поставьте оценку от 1 до 5: '))
    except ValueError:
        print('Введите число.')
        continue

    if 1 <= rating <= 5:
        break

    print('Оценка должна быть от 1 до 5.')

print('Спасибо за оценку:', rating)

Обратите внимание на continue: он сразу запускает следующую итерацию цикла, если преобразование в число не удалось.

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

Иногда удобно попросить пользователя ввести несколько значений через пробел. Для этого используют split().

first_name, last_name = input('Введите имя и фамилию: ').split()
print('Имя:', first_name)
print('Фамилия:', last_name)

Для чисел часто применяют связку split() и map():

a, b = map(int, input('Введите два числа через пробел: ').split())
print('Сумма:', a + b)

Но у такого подхода есть ограничение: если пользователь введёт не два значения, а одно или три, возникнет ошибка. Для учебных задач это нормально, а в пользовательских приложениях лучше добавлять проверку.

parts = input('Введите два числа через пробел: ').split()

if len(parts) != 2:
    print('Нужно ввести ровно два числа.')
else:
    a = int(parts[0])
    b = int(parts[1])
    print('Произведение:', a * b)

Удаление лишних пробелов

input() убирает символ перевода строки в конце, но не удаляет пробелы, введённые пользователем. Поэтому для имён, команд и логинов часто используют strip().

login = input('Введите логин: ').strip()

if login == '':
    print('Логин не может быть пустым.')
else:
    print('Ваш логин:', login)

Если нужно сделать ввод команды нечувствительным к регистру, добавьте lower():

command = input('Команда: ').strip().lower()

if command == 'start':
    print('Запускаю программу...')
elif command == 'stop':
    print('Останавливаю программу...')
else:
    print('Неизвестная команда.')

input() и пароли: важное ограничение

Не используйте обычный input() для ввода пароля, если не хотите показывать символы на экране. Для этого в стандартной библиотеке есть модуль getpass.

from getpass import getpass

password = getpass('Введите пароль: ')
print('Пароль получен')

Это полезно для консольных утилит, где пользователь вводит токен, пароль или секретный ключ.

Что делать с EOFError

Иногда ввод может закончиться неожиданно: например, пользователь нажал Ctrl+D в Linux/macOS или Ctrl+Z в Windows, либо программа получает данные не из интерактивной консоли. В таком случае input() может вызвать EOFError.

try:
    text = input('Введите текст: ')
except EOFError:
    text = ''

print('Получено:', text)

Для простых учебных программ это редко требуется, но для устойчивых консольных скриптов такую ситуацию стоит учитывать.

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

Закрепим ввод данных в Python на небольшом практическом примере. Программа спросит цену товара и процент скидки, проверит значения и посчитает итоговую цену.

def read_float(message):
    while True:
        text = input(message).replace(',', '.').strip()

        try:
            return float(text)
        except ValueError:
            print('Введите корректное число.')

price = read_float('Цена товара: ')
discount = read_float('Скидка в процентах: ')

if price < 0:
    print('Цена не может быть отрицательной.')
elif discount < 0 or discount > 100:
    print('Скидка должна быть от 0 до 100.')
else:
    final_price = price * (1 - discount / 100)
    print('Цена со скидкой:', round(final_price, 2))

Здесь мы вынесли чтение дробного числа в отдельную функцию. Это делает код короче и удобнее: если ввод чисел нужен несколько раз, не приходится копировать один и тот же блок try/except.

Частые ошибки при использовании input()

  • Забыть преобразовать строку в число. Используйте int() или float(), если планируете математические операции.
  • Не проверять пользовательский ввод. Любой ввод извне потенциально некорректен.
  • Считать, что split() всегда вернёт нужное количество частей. Пользователь может ввести больше или меньше значений.
  • Не учитывать пробелы. Для текстовых команд часто нужен strip().
  • Использовать input() для паролей. Лучше применять getpass().

Рекомендации

Если вы только начинаете изучать Python, тренируйтесь писать небольшие консольные программы: калькулятор, конвертер валют, анкету пользователя, игру «угадай число». Именно в таких задачах хорошо закрепляются input(), условия, циклы и преобразование типов. А если хотите пройти путь системно — от первых программ до уверенного владения языком, посмотрите курс «Python с нуля до уровня Гуру: практическая программа обучения».

Итоги

input в Python используется для получения данных от пользователя через консоль. Главное помнить: результат всегда является строкой. Для чисел требуется преобразование через int() или float(), для надёжности — обработка ошибок и проверка диапазонов. Освоив эти приёмы, вы сможете писать более удобные и устойчивые консольные программы.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (https://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: https://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: https://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.