Функции в Python: полный разбор для ЕГЭ по информатике
Представьте, что вам нужно 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 Функция определяется с помощью ключевого слова def.
Синтаксис:
def имя_функции(параметры):
# тело функции
return результат def greet(name):
print(f"Привет, {name}!") greet("Анна") # Привет, Анна!
greet("Максим") # Привет, Максим! Параметры — это переменные, которые функция получает на вход.
Аргументы — это конкретные значения, которые передаются при вызове.
В ЕГЭ используется передача аргументов по позиции. Порядок аргументов должен соответствовать порядку параметров.
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 Чтобы функция вернула результат, используется ключевое слово return.
def double(x):
return x * 2
result = double(5) # 10 def check(x):
if x < 0:
return "Отрицательное"
return "Неотрицательное" Очень распространённая ошибка — поставить return только в одной ветке if.
def max_of_two(a, b):
if a > b:
return a
# Что вернется, если a <= b? 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 Функция может возвращать несколько значений через запятую.
def swap(a, b):
return b, a
x, y = swap(3, 4) # x = 4, y = 3 result = swap(3, 4) # (4, 3)
print(type(result)) # <class 'tuple'> Если в функции нет return, она возвращает None.
def do_nothing():
pass
result = do_nothing()
print(result) # None Переменные, объявленные внутри функции, называются локальными. Они видны только внутри функции.
def test():
x = 10 # локальная переменная
print(x)
test()
print(x) # Ошибка! x не определена вне функции x = 10 # глобальная переменная
def test():
print(x) # 10
test() x = 10
def test():
x = 20 # это локальная переменная!
print(x) # 20
test()
print(x) # 10 (глобальная не изменилась) x = 10
def test():
global x
x = 20 # теперь меняем глобальную
test()
print(x) # 20 Списки (и другие изменяемые объекты) передаются по ссылке. Это значит, что если внутри функции изменить список, он изменится и снаружи.
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] 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] Можно задать значения параметров по умолчанию. Если аргумент не передан, используется значение по умолчанию.
def greet(name="Гость"):
print(f"Привет, {name}!")
greet() # Привет, Гость!
greet("Анна") # Привет, Анна! Функции — это способ:
Что нужно запомнить:
И самое важное:
Если вы написали return только в одной ветке if, а else не написали, при невыполнении условия функция вернет None. Это частая ошибка. Всегда проверяйте, что функция возвращает значение при любых входных данных.
Я — Олег Алексеевич, репетитор по информатике. Готовлю к ЕГЭ более 15 лет.
На своих занятиях мы:
Хотите попробовать? Запишитесь на первое занятие — познакомимся, определим ваш уровень и составим план подготовки.
Переходите на мой сайт, чтобы узнать подробности и записаться: Репетиторы рядом