---
sidebar_position: 5
---

# Функции

Функции — это блоки кода, которые выполняют определенную задачу. Функции позволяют разбить программу на более мелкие, логически связанные части, что улучшает читаемость и переиспользуемость кода.

**Определение функции:**

Функция определяется с помощью ключевого слова `def`, за которым следует имя функции, круглые скобки `()` для параметров и двоеточие `:`. Тело функции должно быть с отступом.

```python
def greet(name):
    """Эта функция приветствует человека, имя которого передается в качестве аргумента."""
    print("Привет, " + name + "!")

# Вызов функции
greet("Алиса") # Выведет "Привет, Алиса!"
greet("Боб")   # Выведет "Привет, Боб!"
```

**Аргументы и параметры:**

Параметры — это переменные, указанные в скобках при определении функции. Аргументы — это значения, которые передаются функции при ее вызове.

```python
def add_numbers(x, y): # x и y - параметры
    """Эта функция возвращает сумму двух чисел."""
    return x + y

result = add_numbers(5, 3) # 5 и 3 - аргументы
print(result) # Выведет 8
```

**Возвращаемое значение:**

Функция может возвращать значение с помощью ключевого слова `return`. Если функция не содержит `return`, она неявно возвращает `None`.

```python
def is_even(number):
    """Эта функция проверяет, является ли число четным."""
    if number % 2 == 0:
        return True
    else:
        return False

print(is_even(4)) # Выведет True
print(is_even(7)) # Выведет False
```

**Область видимости переменных (Scope):**

Область видимости переменной определяет, в какой части программы переменная доступна. В Python есть глобальная и локальная области видимости.

  * **Локальные переменные:**  Объявлены внутри функции и доступны только внутри этой функции.
  * **Глобальные переменные:**  Объявлены вне функций и доступны во всей программе.

<!-- end list -->

```python
global_var = 10 # Глобальная переменная

def my_function():
    local_var = 5 # Локальная переменная
    print(local_var)
    print(global_var)

my_function() # Выведет 5 и 10
# print(local_var) # Вызовет ошибку, local_var не доступна вне функции
print(global_var)  # Выведет 10, global_var доступна вне функции
```