← Назад к вопросам
Как работать с функцией в Python?
1.0 Junior🔥 161 комментариев
#Python Core#Soft Skills
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Основы работы с функциями в Python
Функция — это переиспользуемый блок кода, который выполняет конкретные действия. Она помогает организовать код, сделать его исчитаемым и переиспользуемым.
Определение функции
Функция определяется ключевым словом def:
def greet(name):
return f"Hello, {name}!"
result = greet("Alice")
print(result) # Hello, Alice!
Параметры и аргументы
Позиционные аргументы:
def add(a, b):
return a + b
print(add(2, 3)) # 5
Наименованные аргументы:
def person(name, age):
return f"{name} is {age} years old"
print(person(age=30, name="Bob")) # Bob is 30 years old
Аргументы по умолчанию:
def greet(name, greeting="Hello"):
return f"{greeting}, {name}!"
print(greet("Alice")) # Hello, Alice!
print(greet("Bob", "Hi")) # Hi, Bob!
*Переменное количество аргументов (args):
def sum_numbers(*args):
return sum(args)
print(sum_numbers(1, 2, 3, 4, 5)) # 15
**Произвольные ключевые аргументы (kwargs):
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Alice", age=30, city="NYC")
# name: Alice
# age: 30
# city: NYC
Возврат значения
Функция выполняет код и возвращает результат:
def divide(a, b):
if b == 0:
return None
return a / b
print(divide(10, 2)) # 5.0
print(divide(10, 0)) # None
Несколько возвращаемых значений:
def divmod_custom(a, b):
quotient = a // b
remainder = a % b
return quotient, remainder
q, r = divmod_custom(10, 3)
print(q, r) # 3 1
Область видимости переменных
Local scope: внутри функции
def func():
x = 10
print(x) # 10
func()
print(x) # NameError
Global scope: по всему модулю
x = 10 # global
def func():
print(x) # 10
func()
Enclosing scope: для вложенных функций
def outer():
x = 10
def inner():
print(x) # 10
inner()
outer()
Ламбда функции
Маленькие анонимные функции:
square = lambda x: x ** 2
print(square(5)) # 25
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x ** 2, numbers))
print(squared) # [1, 4, 9, 16, 25]
Типизация (Type Hints)
def add(a: int, b: int) -> int:
return a + b
def greet(name: str) -> str:
return f"Hello, {name}"
def process(data: list) -> dict:
return {"sum": sum(data), "count": len(data)}
Основные принципы
- Функции должны быть малеными и работать одну вещь
- Ограничьте количество параметров
- Организуйте код в отклодываемые функции
- Однозначные названия для функций
- Используй типизацию