06. Функции
Что такое функция
Функция — это кусочек кода, который выполняет определённое действие. Она помогает не повторять один и тот же код много раз.Представь, что функция — это мини-машина: ты подаёшь ей вход (данные), а она выдаёт результат (ответ).
Зачем нужны функции
Функции делают код:- Удобным — можно использовать один и тот же код несколько раз.
- Понятным — код делится на логические блоки.
- Простым в отладке — легче искать ошибки.
Создание функции
Функция создаётся с помощью ключевого слова def:
def greet():
print('Привет, Python!')# Вызов функции
greet()
Результат:
Привет, Python!
Аргументы функций
Функция может принимать параметры — данные, с которыми она работает.
def greet(name):
print('Привет,', name, '!')greet('Анна')
greet('Иван')
Результат:
Привет, Анна!
Привет, Иван!
Возврат значения (return)
Функция может не только что-то делать, но и возвращать результат.
def add(a, b):
return a + bresult = add(3, 5)
print('Сумма:', result)
Результат:
Сумма: 8
Типы аргументов
В Python есть разные виды аргументов:- Обязательные — нужно передать при вызове.
- Необязательные (со значением по умолчанию).
- *args — принимает любое количество аргументов.
- **kwargs — принимает именованные аргументы (словарь).
Примеры
def power(x, n=2):
return x ** n
print(power(3)) # 9
print(power(3, 3)) # 27
def show_names(*names):
for n in names:
print('Имя:', n)
show_names('Анна', 'Иван', 'Олег')
def user_info(**info):
for key, value in info.items():
print(key, ':', value)
user_info(name='Анна', age=25, city='Москва')
Передача и возврат данных
Функции можно вызывать внутри других функций:
def square(x):
return x * xdef sum_of_squares(a, b):
return square(a) + square(b)
print(sum_of_squares(2, 3)) # 13
Область видимости (scope)
Переменные внутри функции — локальные. Они не видны снаружи.
def test():
x = 10 # локальная переменная
print('Внутри функции:', x)test()
# print(x) # Ошибка — переменная x не существует вне функции
Докстроки (docstring)
Это комментарий внутри функции, объясняющий, что она делает.
def greet(name):
"""Функция выводит приветствие по имени."""
print('Привет,', name)
Анонимные функции (lambda)
Иногда удобно написать короткую функцию прямо в одну строку:
square = lambda x: x * x
print(square(4)) # 16
Практические примеры
- Напиши функцию, которая возвращает максимум из трёх чисел.
- Создай функцию, которая принимает имя и возраст, и выводит приветствие.
- Сделай функцию, которая считает количество гласных букв в слове.
Типичные ошибки новичков
- Забывают поставить круглые скобки при вызове функции (пишут greet вместо greet()).
- Не возвращают значение через return, когда это нужно.
- Используют одинаковые имена переменных внутри и снаружи функции, путая область видимости.
Мини-проект: калькулятор функций
def add(a, b):
return a + bdef sub(a, b):
return a - b
def mul(a, b):
return a * b
def div(a, b):
if b != 0:
return a / b
else:
return 'Деление на ноль!'
print('Выберите операцию: +, -, *, /')
op = input('> ')
a = float(input('Введите первое число: '))
b = float(input('Введите второе число: '))
if op == '+':
print('Результат:', add(a, b))
elif op == '-':
print('Результат:', sub(a, b))
elif op == '*':
print('Результат:', mul(a, b))
elif op == '/':
print('Результат:', div(a, b))
else:
print('Неизвестная операция!')
Итоги урока
Теперь вы знаете:- Как создавать и вызывать функции с помощью def.
- Что такое аргументы и как использовать return.
- Что такое *args и **kwargs.
- Как работать с областью видимости и докстроками.
- Как использовать лямбда-функции и применять функции в мини-проектах.