Python функции

0 ~4 мин. Обновлено 06.05.2026
ЕГЭ 11 класс

Введение

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

Термины, которые будем использовать:

функция, параметры, аргументы, локальные и глобальные переменные, область видимости переменных, snake case.

Что такое функция

Функция — это вынесенный блок кода, который выполняет определённый алгоритм.

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

Забирай курсы подготовки к ОГЭ и ЕГЭ с жирной скидкой

Назначение функций

  1. Повторное использование кода: напиши один раз — используй сколько угодно.
  2. Большая программа разбивается на логические блоки (функции).
  3. Легче найти ошибку в одной маленькой функции, чем в большом монолитном коде.

  4. Можно использовать сложную функцию, не вникая в то, как именно она работает внутри, главное — какой результат возвращает.

Синтаксис собственной функции

def say_hello():

print(“Привет, мир!”)

def — ключевое слово, обозначающее начало блока функции,

say_hello() — имя функции, может быть любым (не зарезервированным), в круглых скобках можно указать параметры, которая функция должна принимать (в нашем примере их нет). Принято придерживаться snake_case — слова отделяются нижним подчёркиванием и начинаются с маленькой буквы. Тело функции начинается после двоеточия и каждая строка идёт с отступом.

Важно! Код в теле функции не выполняется сам по себе, чтобы он выполнился, нужно явно вызвать функцию. Причём вызов должен быть ниже в коде, чем сама функция.

Пример:
def say_hello():

print(“Привет, мир!”)

say_hello()

Вывод: Привет, мир!

Но если попытаться вызвать функцию до её инициализации, возникнет ошибка:

say_hello()

def say_hello():

print(“Привет, мир!”)

NameError: name ‘say_hello’ is not defined

Функции, которые получают данные: параметры и аргументы

Параметр — это переменная в определении функции (внутри скобок def).

Аргумент — это конкретное значение, которое мы передаём функции при вызове.

Простой пример с одним параметром

def greet(name):

print(“Привет, ” + name)

greet(“Анна”) # “Анна” — аргумент

Вывод: Привет, Анна

Функция с несколькими параметрами

def introduce(name, age):

print(f”Меня зовут {name}, мне {age} лет.”)

introduce(“Петр”, 25)

Вывод: Меня зовут Петр, мне 25 лет.

Важно! Аргументы для функции передаются в том же порядке, в котором были объявлены параметры.

Функции, которые возвращают результат: ключевое слово return

return — ключевое слово, значение после которого будет возвращено основной программе, которая эту функцию вызвала. Например, когда мы вызвали функцию len(), она возвращала нам длину строки — число, которое мы в дальнейшем использовали.

def add(a, b):

result = a + b

return result

sum_result = add(5, 3) # результат (8) сохраняется в переменную

print(sum_result * 2) # можно работать с результатом дальше (16)

У одной функции может быть несколько return в зависимости от условий и входных данных, но как только сработает один из них, дальнейший блок кода выполняться уже не будет — это как break для цикла.

def is_positive(x):

if x > 0:

return True

return False

print(is_positive(5)) # True

print(is_positive(0)) # False

print(is_positive(–9)) # False

В зависимости от знака функция возвращает булевое значение, но всегда только одно: если условие истинно, вернётся True и блок кода завершится, если ложно — вернётся False.

Так как выражение x >0 само по себе возвращает булевое значение, функцию можно упростить:

def is_positive(x):

return x > 0

Области видимости переменных (локальные и глобальные)

Локальная переменная — это твой личный дневник, который лежит в твоей комнате. Его видишь и меняешь только ты. Из кухни или с улицы до него не дотянуться.

Глобальная переменная — это доска объявлений в подъезде твоего дома. Её видят все жильцы (все функции в твоей программе) и могут читать, что на ней написано.

Это глобальная область (наш «подъезд»)

global_message = “Я на доске в подъезде (глобальная)” # Глобальная переменная

global_counter = 0 # ещё одна глобальная переменная

def read_from_porch():

Функция — как жилец, который вышел из квартиры в подъезд

print(“Читаю объявление:”, global_message)

read_from_porch() # Выведет: “Читаю объявление: Я на доске в подъезде (глобальная)”

То есть глобальная переменная global_message видна изнутри функции.

global_message = “Я на доске в подъезде”

def close_the_door():

# Мы зашли в функцию (в свою комнату) и закрыли дверь

local_secret = “Мой личный пароль (локальная)” # Локальная переменная

print(“Внутри комнаты я знаю:”, local_secret) # Её видно ТОЛЬКО здесь

close_the_door() # Выведет: “Внутри комнаты я знаю: Мой личный пароль (локальная)”

# А теперь попробуем прочесть локальную переменную снаружи:

# print(local_secret) # NameError: name ‘local_secret’ is not defined

К локальным переменным можно обращаться только внутри функции, в которой они были созданы, снаружи — нельзя.

ПризнакЛокальная переменнаяГлобальная переменная
Где создаётсяВнутри функцииВ основном коде, вне функций
Где виднаТолько внутри своей функции.Во всей программе (во всех функциях).
Время жизниСоздаётся при вызове функции, уничтожается при её завершении.Существует всё время работы программы.
Как изменить из функцииИзменяется напрямую.Передать как аргумент, вернуть результат.

Главное правило

Вход: функция получает данные только через аргументы в скобках.

Работа: всё, что нужно для работы, функция создаёт внутри себя как локальные переменные.

Выход: результат своей работы функция отправляет наружу только через return.

Следуй этому простому правилу, и все ошибки обойдут тебя стороной.

Задание для самопроверки

Задание 1.

Напиши функцию is_even(num), которая возвращает True, если число чётное, и False — если нет.

def is_even(num):

return num % 2 == 0

Задание 2.

Напиши функцию find_max(list_of_numbers), которая возвращает максимальное число из списка. Пользоваться встроенное функцией max() нельзя.

def find_max(list_of_numbers):

res = list_of_numbers[0]

for x in list_of_numbers:

if x > res:

res = x

return res

Задание 3.

Усложни функцию greet(), чтобы она могла принимать не только имя, но и язык приветствия (например, “en” или “ru”), и возвращала соответствующее приветствие.

def greet(name, language):

if language == “ru”:

return f”Привет, {name}”

return f”Hello, {name}”

Автор:

Быкова Оксана, методист «100балльного репетитора» по информатике ЕГЭ

Забирай курсы подготовки к ОГЭ и ЕГЭ с жирной скидкой
Понравилась статья?

С нами ты получишь высокие баллы
на ЕГЭ и ОГЭ

№ 1

по стобалльникам

Мы выпускаем больше всего стобалльников в России (в 2025 году каждый 7-й — наш ученик)

300k+

Учеников поступили в вузы мечты с нашей помощью

10+

лет средний опыт наших преподавателей

Мы знаем, как забрать максимум
на экзамене

Отправим стратегию
подготовки к экзаменам
на бесплатной консультации

  • Оценим текущий уровень знаний
  • Подскажем, с чего начать
  • Дадим понятный план действий
  • 11 класс
  • 10 класс
  • 9 класс
  • 8 класс
  • 7 класс

Нажимая на кнопку «Записаться» вы соглашаетесь на обработку персональных данных

Ракета