← Назад к вопросам

Как работать с функцией в 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)}

Основные принципы

  • Функции должны быть малеными и работать одну вещь
  • Ограничьте количество параметров
  • Организуйте код в отклодываемые функции
  • Однозначные названия для функций
  • Используй типизацию