Функции в Python: полный разбор для ЕГЭ по информатике

Функции в Python: полный разбор для ЕГЭ по информатике

Программирование — это не просто написание кода. Это умение организовать код так, чтобы он был понятным, переиспользуемым и не содержал повторений.
Функции — главный инструмент для решения такой задачи.
В нашей статье мы разберем:
  • что такое функции и зачем они нужны;
  • как определять функции и передавать им параметры;
  • как возвращать значения;
  • что такое локальные и глобальные переменные;
  • как передавать списки в функции;
  • частые ошибки, которых стоит избегать.

1. Зачем нужны функции

Представьте, что вам нужно 10 раз вычислить сумму квадратов двух чисел. Если писать формулу каждый раз заново — код станет огромным и запутанным.

Функция позволяет написать код один раз, а потом использовать его много раз.

Пример без функции:

a = 3
b = 4
result1 = a**2 + b**2

a = 5
b = 6
result2 = a**2 + b**2

a = 7
b = 8
result3 = a**2 + b**2
С функцией:
def sum_squares(a, b):
    return a**2 + b**2

result1 = sum_squares(3, 4)   # 25
result2 = sum_squares(5, 6)   # 61
result3 = sum_squares(7, 8)   # 113
Короче, понятнее, меньше повторений.

2. Определение функции

Функция определяется с помощью ключевого слова def.

Синтаксис:

def имя_функции(параметры):
    # тело функции
    return результат
Пример:
def greet(name):
    print(f"Привет, {name}!")
Здесь:
  • def — ключевое слово для определения функции.
  • greet — имя функции.
  • name — параметр (входные данные).
  • Тело функции — код, который выполняется при вызове.
Вызов функции
После определения функцию нужно вызвать по имени:
greet("Анна")   # Привет, Анна!
greet("Максим") # Привет, Максим!

3. Параметры и аргументы

Параметры — это переменные, которые функция получает на вход.

Аргументы — это конкретные значения, которые передаются при вызове.

В ЕГЭ используется передача аргументов по позиции. Порядок аргументов должен соответствовать порядку параметров.

def calc(a, b, c):
    return a + b * c

result = calc(2, 3, 4)   # a=2, b=3, c=4 → 2 + 12 = 14
Если перепутать порядок, результат будет другим:
result = calc(4, 3, 2)   # a=4, b=3, c=2 → 4 + 6 = 10
Для ЕГЭ достаточно передачи по позиции. В заданиях другие механизмы (именованные аргументы, *args, **kwargs) не встречаются.

4. Возврат значений — return

Чтобы функция вернула результат, используется ключевое слово return.

def double(x):
    return x * 2

result = double(5)   # 10
После выполнения return функция завершает работу:
def check(x):
    if x < 0:
        return "Отрицательное"
    return "Неотрицательное"
Если x = -5, функция вернет "Отрицательное" и дальше не пойдет.

5. Частая ошибка: return в if без else

Очень распространённая ошибка — поставить return только в одной ветке if.

def max_of_two(a, b):
    if a > b:
        return a
    # Что вернется, если a <= b?
Если a <= b, функция не попадет в if и завершится без return. А это значит, что она вернет None.
Исправление:
def max_of_two(a, b):
    if a > b:
        return a
    return b   # ← работает для всех случаев
или
def max_of_two(a, b):
    if a > b:
        return a
    else:
        return b

6. Несколько значений

Функция может возвращать несколько значений через запятую.

def swap(a, b):
    return b, a

x, y = swap(3, 4)   # x = 4, y = 3
На самом деле Python возвращает кортеж:
result = swap(3, 4)   # (4, 3)
print(type(result))   # <class 'tuple'>

7. Что возвращает функция без return

Если в функции нет return, она возвращает None.

def do_nothing():
    pass

result = do_nothing()
print(result)   # None
None — это специальное значение, означающее "ничего". В логических операциях None интерпретируется как False.

8. Локальные и глобальные переменные

Переменные, объявленные внутри функции, называются локальными. Они видны только внутри функции.

def test():
    x = 10   # локальная переменная
    print(x)

test()
print(x)   # Ошибка! x не определена вне функции
Глобальные переменные объявляются вне функций и видны везде.
x = 10   # глобальная переменная

def test():
    print(x)   # 10

test()
Но если попытаться изменить глобальную переменную внутри функции, Python создаст новую локальную:
x = 10

def test():
    x = 20   # это локальная переменная!
    print(x)   # 20

test()
print(x)   # 10 (глобальная не изменилась)
Чтобы изменить глобальную переменную внутри функции, нужно использовать ключевое слово global:
x = 10

def test():
    global x
    x = 20   # теперь меняем глобальную

test()
print(x)   # 20
В ЕГЭ использование global почти не встречается. Обычно достаточно передавать значения через параметры и возвращать через return.

9. Передача списков в функцию

Списки (и другие изменяемые объекты) передаются по ссылке. Это значит, что если внутри функции изменить список, он изменится и снаружи.

def add_one(data):
    for i in range(len(data)):
        data[i] += 1

numbers = [1, 2, 3]
add_one(numbers)
print(numbers)   # [2, 3, 4]
Почему так происходит?
Python передает в функцию ссылку на объект. Функция работает с тем же объектом, который был передан.
Это может быть полезно, но иногда приводит к неожиданным эффектам.
Как избежать изменения исходного списка
Если нужно оставить исходный список без изменений, создайте копию:
def add_one(data):
    new_data = data.copy()   # создаём копию
    for i in range(len(new_data)):
        new_data[i] += 1
    return new_data

numbers = [1, 2, 3]
new_numbers = add_one(numbers)
print(numbers)     # [1, 2, 3]
print(new_numbers) # [2, 3, 4]

10. Аргументы по умолчанию

Можно задать значения параметров по умолчанию. Если аргумент не передан, используется значение по умолчанию.

def greet(name="Гость"):
    print(f"Привет, {name}!")

greet()          # Привет, Гость!
greet("Анна")    # Привет, Анна!
В ЕГЭ это встречается редко, но знание не помешает.

11. Главный вывод

Функции — это способ:

  • избежать повторения кода;
  • сделать программу понятнее;
  • разделить сложную задачу на части.

Что нужно запомнить:

  1. Функция определяется через def.
  2. Параметры передаются по позиции.
  3. Результат возвращается через return.
  4. Если return нет — функция возвращает None.
  5. Локальные переменные не видны снаружи функции.
  6. Списки передаются по ссылке (изменяются внутри функции).

И самое важное:

Если вы написали return только в одной ветке if, а else не написали, при невыполнении условия функция вернет None. Это частая ошибка. Всегда проверяйте, что функция возвращает значение при любых входных данных.

Нужна помощь с подготовкой?

Я — Олег Алексеевич, репетитор по информатике. Готовлю к ЕГЭ более 15 лет.

На своих занятиях мы:

  • разбираем структуру экзамена и стратегии решения;
  • пишем код на Python так, чтобы он работал с первого раза;
  • отрабатываем сложные задания 26 и 27 на реальных примерах.

Хотите попробовать? Запишитесь на первое занятие — познакомимся, определим ваш уровень и составим план подготовки.

Переходите на мой сайт, чтобы узнать подробности и записаться: Репетиторы рядом

Made on
Tilda