Две функции, которые делают программу интерактивной
Большинство первых Python-программ имеют одну и ту же форму: спросить пользователя через input(), что-то сделать с ответом и отчитаться через print(). Эти две встроенные функции — способ, которым твой код общается с миром.
Разберёмся по очереди.
print(): вывод
В самом простом виде print() пишет строку текста в терминал:
Выводит слово hello и перевод строки. Этот перевод — то, что отделяет один вызов print от следующего на экране.
В одном вызове можно передать несколько значений, и Python поставит между ними пробел:
Вывод:
Name: Ada Age: 36
Значения не обязаны быть строками. print вызывает str() на каждом аргументе, так что типы можно свободно смешивать:
Меняем разделитель
Если пробел между значениями тебе не подходит, используй sep:
Меняем окончание строки
По умолчанию print дописывает перевод строки. Меняй его через end — например, чтобы оставить вывод на одной строке:
end="" — это приём, позволяющий собирать строку по кусочкам.
print идёт в stdout
По умолчанию 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 в пустую строку (или любой другой символ) заменяет этот перевод.