Menu
Русский

Функции print() и input() в Python: чтение ввода и вывод

Как работают функции print() и input() в Python — плюс разделители, символы конца строки и как преобразовать пользовательский ввод в числа.

Две функции, которые делают программу интерактивной

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

Разберёмся по очереди.

В самом простом виде print() пишет строку текста в терминал:

main.py
Output
Click Run to see the output here.

Выводит слово hello и перевод строки. Этот перевод — то, что отделяет один вызов print от следующего на экране.

В одном вызове можно передать несколько значений, и Python поставит между ними пробел:

main.py
Output
Click Run to see the output here.

Вывод:

Name: Ada Age: 36

Значения не обязаны быть строками. print вызывает str() на каждом аргументе, так что типы можно свободно смешивать:

main.py
Output
Click Run to see the output here.

Меняем разделитель

Если пробел между значениями тебе не подходит, используй sep:

main.py
Output
Click Run to see the output here.

Меняем окончание строки

По умолчанию print дописывает перевод строки. Меняй его через end — например, чтобы оставить вывод на одной строке:

main.py
Output
Click Run to see the output here.

end="" — это приём, позволяющий собирать строку по кусочкам.

По умолчанию print пишет в stdout (стандартный поток вывода) — обычное место, где появляется вывод терминала. Можно перенаправить в stderr, в файл или в любой файлоподобный объект через аргумент file:

main.py
Output
Click Run to see the output here.

Для форматированного вывода — два знака после запятой, выровненные столбцы, запятые в больших числах — используй f-строки внутри print:

main.py
Output
Click Run to see the output here.

input(): чтение от пользователя

input(prompt) останавливает программу, показывает пользователю приглашение и ждёт. Всё, что он введёт, — до нажатия Enter — возвращается в виде строки.

main.py
Output
Click Run to see the output here.

Три факта про input, на которых спотыкаются новички:

Всегда возвращает строку

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

main.py
Output
Click Run to see the output here.

Вот почему часто встречаешь int(input(...)) или float(input(...)) в одну строку. Если пользователь ввёл что-то, что не является корректным числом, int() поднимет ValueError — с этим мы правильно разберёмся в главе про исключения.

Приглашение не обязательно

Если ты не передашь строку-приглашение, input() будет тихо ждать — это почти всегда неправильный выбор: пользователь не знает, чего ты хочешь. Всегда передавай понятное приглашение:

main.py
Output
Click Run to see the output here.

Ничего не обрезает

Что пользователь ввёл — то и вернётся, вместе с ведущими и замыкающими пробелами. Если для твоей логики это важно — вызови .strip():

main.py
Output
Click Run to see the output here.

Крошечная целая программа

Собираем вместе — несколько строк, спрашивающих у пользователя данные и печатающих короткий отчёт:

main.py
Output
Click Run to see the output here.

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

А что насчёт отладки через print?

Тебе иногда будут говорить, что «настоящие разработчики пользуются отладчиком, а не print». Это преувеличение. Print — вполне хороший инструмент отладки, особенно для маленьких скриптов и быстрых экспериментов. Пока разбираешься — посыпай код print-ами; когда разобрался — убери.

Два приятных мелких трюка:

main.py
Output
Click Run to see the output here.

= внутри f-строки печатает и имя, и значение — экономит кучу шаблонного print("name =", name).

Двигаемся дальше

print и input дают тебе полный разговорный цикл: спроси, прочитай, ответь. Следующая глава начнёт подмешивать условия — оператор if и операторы, решающие, что делает твоя программа в зависимости от значений, которые видит.

Часто задаваемые вопросы

Что делает print() в Python?

Пишет значения в терминал. print("hello") выводит hello, а за ним — перевод строки. Можно передать несколько значений через запятую, и print() по умолчанию поставит между ними пробел.

Как работает input() в Python?

input(prompt) ставит программу на паузу, показывает пользователю приглашение, ждёт, пока он что-то введёт и нажмёт Enter, и возвращает введённое в виде строки. Всегда строки — если нужно число, оберни вызов в int(...) или float(...).

Как напечатать в одну строку в Python?

Передай end="" в print. По умолчанию print добавляет перевод строки после вывода; установка end в пустую строку (или любой другой символ) заменяет этот перевод.

Учитесь программировать с Coddy

НАЧАТЬ