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

Какая в Python типизация?

1️⃣ Как кратко ответить

В Python используется динамическая и сильная типизация. Типы данных определяются во время выполнения, и неявное преобразование типов не выполняется.

2️⃣ Подробное объяснение темы

Динамическая типизация означает, что тип переменной определяется во время выполнения программы, а не во время компиляции. Например:

x = 10  # Переменная x автоматически получает тип int
x = "Hello"  # Теперь x имеет тип str

В этом примере переменная x сначала была целым числом, а затем стала строкой. Python сам определяет тип данных, основываясь на присваиваемом значении.

Сильная типизация означает, что Python не выполняет неявное преобразование типов. Если вы попытаетесь выполнить операцию с несовместимыми типами, Python выдаст ошибку. Например:

x = 10
y = "20"
result = x + y  # Ошибка: нельзя сложить int и str

В этом примере Python не пытается автоматически преобразовать строку "20" в число. Чтобы выполнить сложение, необходимо явно преобразовать строку в число:

x = 10
y = "20"
result = x + int(y)  # Преобразуем y в int, теперь результат будет 30

Пример практического применения

Рассмотрим пример функции, которая принимает список чисел и возвращает их сумму. Благодаря динамической типизации, функция может работать с любым списком чисел, не требуя указания их типа:

def sum_numbers(numbers):
    total = 0  # Инициализируем переменную для хранения суммы
    for number in numbers:  # Проходим по каждому числу в списке
        total += number  # Добавляем текущее число к общей сумме
    return total  # Возвращаем итоговую сумму
​
result = sum_numbers([1, 2, 3, 4, 5])  # Вызываем функцию с примером списка
print(result)  # Вывод: 15

В этом примере функция sum_numbers принимает список чисел и возвращает их сумму. Благодаря динамической типизации, функция может работать с любым списком чисел, не требуя указания их типа. Сильная типизация гарантирует, что все элементы списка должны быть числами, иначе произойдет ошибка.

Тема: Python
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки