Урок 4: Функции в Python

Что такое функции?

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

Объявление функции

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

# Простейшая функция
def say_hello():
    print("Привет!")

# Вызов функции
say_hello()  # Выведет: Привет!

Функции с параметрами

# Функция с параметром
def greet(name):
    print(f"Привет, {name}!")

greet("Алиса")  # Выведет: Привет, Алиса!
greet("Боб")    # Выведет: Привет, Боб!

Функции с возвращаемым значением

# Функция возвращает сумму двух чисел
def add(a, b):
    return a + b

result = add(5, 3)
print(result)  # Выведет: 8

Рекурсивные функции

Рекурсивная функция вызывает саму себя. Например, вычисление факториала числа:

def factorial(n):
    if n == 1:
        return 1
    return n * factorial(n - 1)

print(factorial(5))  # Выведет: 120

Глобальные и локальные переменные

Переменные, объявленные внутри функции, являются локальными. Чтобы изменить глобальную переменную внутри функции, используется global.

x = 10  # Глобальная переменная

def change_x():
    global x
    x = 20

change_x()
print(x)  # Выведет: 20

Аннотации типов

Python позволяет указывать ожидаемые типы аргументов и возвращаемого значения:

def multiply(a: int, b: int) -> int:
    return a * b

print(multiply(3, 4))  # Выведет: 12

Использование аннотаций с списками

Можно указывать, что аргумент является списком определённого типа:

def sum_list(numbers: list[int]) -> int:
    return sum(numbers)

print(sum_list([1, 2, 3, 4]))  # Выведет: 10

Аннотации для нескольких типов

Если функция может возвращать разные типы данных, используют Union:

from typing import Union

def process(value: Union[int, str]) -> str:
    return str(value).upper()

print(process(123))    # Выведет: 123
print(process("hello"))  # Выведет: HELLO

Домашнее задание 🏡

1️⃣ Напишите функцию, которая принимает имя и возраст, а затем выводит сообщение.

2️⃣ Напишите функцию, которая принимает список чисел и возвращает их сумму.

3️⃣ Создайте рекурсивную функцию, вычисляющую сумму чисел от 1 до N.

🔄 Задачи по пройденному материалу 🔙 Назад к списку уроков