В прошлом уроке вы уже один раз написали print("Hello, World!") и увидели, как программа что-то отвечает. Но что тогда произошло на самом деле? Откуда Python знает, что делать с этой строчкой?
Дело в том, что print — это не волшебное слово, а готовый инструмент, который уже встроен в Python. Таких инструментов в языке десятки: одни выводят текст на экран, другие считают длину слова, третьи говорят, с каким типом данных вы работаете. Вам не нужно писать их с нуля — нужно только знать, как ими пользоваться. Именно этому и посвящён этот урок: вы разберёте пять таких инструментов и поймёте общий принцип, по которому работают все остальные, которые встретятся дальше по курсу.
Что значит «вызвать функцию»
Представьте кофемашину на кухне в офисе. Вы не разбираетесь, что происходит внутри неё — вам достаточно нажать кнопку и выбрать, какой кофе вы хотите: эспрессо или капучино. Кофемашина — готовый механизм, вы просто им пользуетесь, передавая ей одно уточнение: какой напиток налить.
В программировании так же устроены функции. Функция — это уже готовый, отдельно оформленный кусок кода, который умеет делать конкретное действие. Чтобы этим действием воспользоваться, функцию нужно вызвать: написать её имя и сразу за ним — круглые скобки. То, что вы кладёте внутрь скобок, называется аргументом — это и есть уточнение вроде «эспрессо или капучино», которое вы передаёте функции, чтобы она знала, с чем работать.
print("Привет")
Привет
| имя функции — готового инструмента, который выводит текст на экран | |
| ( ) | круглые скобки означают вызов: «выполни то, что умеешь» |
| "Привет" | аргумент — строка в кавычках, которую нужно вывести |
Если скобки убрать и просто написать print, ничего не произойдёт — Python лишь «посмотрит» на функцию, но не выполнит её. Про эту и другие похожие ловушки поговорим отдельно в разделе про частые ошибки.
У функций есть ещё одно важное свойство: после выполнения они могут отдать обратно какое-то значение. Это называется результатом (или возвращаемым значением). У функции print результата, по сути, нет — её задача просто вывести текст на экран. А вот дальше вы увидите функции, которые как раз работают через результат: они ничего не печатают сами, а лишь возвращают значение, и его нужно вывести отдельно.
print(): несколько аргументов, sep и end
Если в кофемашину можно одновременно засыпать и кофе, и добавить сахар — то есть указать сразу несколько уточнений — то и в print можно передать не один аргумент, а сразу несколько. Для этого их перечисляют через запятую.
print("Python", "прост", "и", "понятен")
Python прост и понятен
Обратите внимание: Python сам поставил пробелы между словами, хотя вы их не писали. Это поведение по умолчанию — между аргументами print подставляет пробел, а в самом конце добавляет переход на новую строку (поэтому следующий print всегда начинается с чистой строки).
Это поведение можно изменить. У функции print есть официальный термин для такой настройки — именованный параметр: вы пишете имя настройки, знак равенства и новое значение прямо внутри скобок. Это не создание переменной (с переменными вы познакомитесь в следующем уроке) — это способ сказать самой функции print, как себя вести. У неё их два:
| sep | чем разделять аргументы между собой. По умолчанию — пробел " " |
| end | что напечатать в самом конце, после последнего аргумента. По умолчанию — переход на новую строку |
print("2026", "09", "24", sep="-")
2026-09-24
Здесь sep="-" означает: вместо пробела между аргументами ставь дефис. Каждый аргумент по-прежнему отдельный ("2026", "09", "24") — просто склеивает их Python теперь не пробелом, а тем символом, который вы указали.
print("Загрузка", end="...")
print("Готово")
Загрузка...Готово
| print("Загрузка", end="...") | печатает «Загрузка», но вместо перехода на новую строку добавляет «...» |
| print("Готово") | начинает печать сразу после «...», на той же строке, а не с новой |
print("а", "б", sep=", ", end="!") выведет а, б!Это открывает удобный приём: чтобы вывести несколько строк одним-единственным вызовом print, достаточно передать их как отдельные аргументы и указать sep="\n" — символ переноса строки.
print("Раз", "два", "три", sep="\n")
Раз
два
три
Каждый из трёх аргументов оказался на своей строке, потому что символ "\n" теперь стоит между ними вместо пробела — сам Python понимает \n как команду «перейти на новую строку», а не как два обычных символа.
len(): длина строки
Представьте, что вам нужно быстро посчитать, сколько букв в слове, не пересчитывая их по одной пальцем. Для этого в Python есть готовая функция len (сокращение от английского length — «длина»). Она принимает один аргумент и возвращает число — количество символов в нём.
print(len("Python"))
6
| len("Python") | вызов функции len с аргументом-строкой; результат — число 6 |
| print( ... ) | len сама ничего не печатает, а только возвращает число, поэтому результат оборачивают в print, чтобы его увидеть |
Важно: len считает абсолютно все символы, включая пробелы и знаки препинания.
print(len("Привет, мир!"))
12
Проверьте сами: «Привет» — 6 символов, запятая — 1, пробел — 1, «мир» — 3, восклицательный знак — 1. Итого 12. Функция len не умеет отличать «настоящие» буквы от знаков препинания — для неё любой символ считается наравне с остальными.
type(): какого типа значение
Иногда важно понять, с чем именно вы работаете: с числом, с текстом или с чем-то ещё. В жизни вы отличаете яблоко от книги на глаз, а вот Python нужно спросить напрямую — для этого есть функция type. Она принимает одно значение и возвращает его тип.
print(type(5))
print(type(5.5))
print(type("Python"))
<class 'int'>
<class 'float'>
<class 'str'>
| int | целое число, без дробной части (integer) |
| float | дробное число, с точкой (float — число с плавающей точкой) |
| str | строка, текст в кавычках (string) |
Слово class в выводе можно пока пропускать мимо ушей — оно означает, что в Python даже такие простые вещи, как число, устроены как отдельная сущность со своими правилами. Пока для вас важно только то, что идёт после class: само название типа.
Как и len, функция type ничего не печатает сама — она только возвращает значение. Если написать просто type(5) отдельной строкой в файле и запустить программу, вы не увидите ничего, потому что результат никуда не вывели. Чтобы его увидеть, type(...) всегда нужно передавать внутрь print(...), как в примере выше.
round(), abs(), max(), min(): счётные помощники
У Python есть ещё несколько готовых функций для работы с числами — они пригодятся вам почти в каждом уроке дальше, так что познакомиться с ними стоит сразу.
print(round(3.7))
print(round(3.14159, 2))
4
3.14
| round(3.7) | округляет число до целого по обычным математическим правилам — результат 4 |
| round(3.14159, 2) | второй аргумент — сколько знаков оставить после точки; здесь 2, результат 3.14 |
print(abs(-5))
print(abs(5))
5
5
abs (от английского absolute value) убирает знак минус, если он есть, и возвращает число по модулю — расстояние от нуля. Для уже положительного числа результат не меняется.
print(max(3, 8, 1))
print(min(3, 8, 1))
8
1
max и min принимают сколько угодно аргументов через запятую и возвращают самый большой и самый маленький из них соответственно. Работают они и с двумя числами, и с пятью — количество аргументов не ограничено.
Частые ошибки
Вот на чём чаще всего спотыкаются в начале работы с готовыми функциями.
Забыли скобки. Если написать имя функции без круглых скобок, Python не станет ругаться ошибкой — но и не выполнит её. Строка просто ничего не сделает.
print
print("Привет")
Привет
Первая строка ничего не вывела: print без скобок — это просто упоминание функции, а не её выполнение. Печатается только то, что после скобок.
Текст без кавычек. Если забыть кавычки вокруг текста, Python решит, что вы обращаетесь не к строке, а к чему-то уже существующему в программе — например, к переменной с таким именем.
print(Привет)
NameError: name 'Привет' is not defined
Python честно ищет что-то с именем Привет среди уже известных ему слов — не находит и сообщает об этом ошибкой NameError. Кавычки — это то, что превращает набор букв в обычный текст, а не в имя.
len() на числе. Функция len умеет считать длину только у строк (и у нескольких других типов, с которыми вы познакомитесь позже) — но не у чисел.
print(len(25))
TypeError: object of type 'int' has no len()
Число 25 — это не набор символов, а единая величина, и у него просто нет «длины». Если вам нужно посчитать, например, сколько цифр в числе, придётся сначала превратить его в строку — но это тема одного из следующих уроков.
Проверьте себя
3 вопроса
Три строки одним print
Вы разобрали параметр sep у функции print. Выведите одним (единственным) вызовом print() три строки, каждую на своей строке:
Утро День Вечер
Используйте sep="\n", чтобы развести аргументы по разным строкам. Одна команда print — три аргумента — три строки вывода.