Menu

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

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

На этой странице есть исполняемые редакторы: меняйте, запускайте и сразу видите результат.

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

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

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

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

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

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

Вывод:

Name: Ada Age: 36

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

= внутри 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 programming languages illustration

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

НАЧАТЬ