Функции в Python нужны, чтобы переиспользовать код, делать программу понятнее и легче поддерживать. Если вы ищете, чем отличаются параметры и аргументы, как работают позиционные и именованные значения, и где применять lambda, — вот краткий и практичный разбор.
Что такое функция
Функция — это блок кода, который выполняет задачу и может принимать входные данные.
def greet(name):
return f"Привет, {name}!"
Здесь name — параметр функции.
Параметры и аргументы
Частая путаница:
- параметр — переменная в объявлении функции
- аргумент — конкретное значение при вызове
def add(a, b): # a и b — параметры
return a + b
add(2, 3) # 2 и 3 — аргументы
Основные виды аргументов
-
Позиционные
print(pow(2, 3)) # 2 и 3 переданы по порядку -
Именованные
def connect(host, port): return f"{host}:{port}" connect(port=5432, host="localhost") -
Аргументы по умолчанию
def hello(name="мир"): return f"Привет, {name}"
Важно: не используйте изменяемые значения по умолчанию вроде [] или {} — это частая ошибка ⚠️
Плохо:
def add_item(item, items=[]):
items.append(item)
return items
Лучше:
def add_item(item, items=None):
if items is None:
items = []
items.append(item)
return items
args и kwargs
Нужны, когда количество аргументов заранее неизвестно.
def total(*args):
return sum(args)
def profile(**kwargs):
return kwargs
*args собирает позиционные аргументы в кортеж,
**kwargs — именованные аргументы в словарь.
Что такое lambda
lambda — это анонимная функция для коротких операций. Удобна там, где не нужна полноценная def.
square = lambda x: x * x
print(square(4)) # 16
Часто используется с sorted(), map(), filter():
users = [("Анна", 25), ("Игорь", 19), ("Мария", 30)]
sorted_users = sorted(users, key=lambda user: user[1])
Здесь список сортируется по возрасту 👨💻
Когда использовать lambda, а когда def
lambda— для простых одноразовых выраженийdef— если логика сложнее, нужна читаемость или документация
Если выражение в lambda трудно понять с первого взгляда, лучше вынести его в обычную функцию 🧠
Что важно запомнить
- параметры — в объявлении, аргументы — при вызове
- есть позиционные, именованные и значения по умолчанию
*argsи**kwargsделают функции гибкимиlambdaподходит для коротких операций, но не заменяет обычные функции полностью
Функции — одна из базовых тем Python, и хорошее понимание параметров и аргументов напрямую влияет на качество кода, читаемость и успех на собеседованиях 🚀
📌 Загляните в подборку каналов про IT — там ещё больше полезных материалов по Python, разработке и карьере в технологиях.