кусок кода вас не кусает, он просто выдает ошибку.

Python - это язык с динамической типизацией. Это означает, что от вас не требуется объявлять переменную перед ее использованием. Это отличает python от других языков программирования, таких как C, C ++, Java и т. Д.

>>> x = 5
>>> type(x)
int

Python автоматически определит тип данных присвоенных переменных. К счастью, его типы данных в основном такие же, как и другие. Вот несколько примеров типов данных Python:

1       ->  int
1.0     ->  float
"1"     ->  str
[1]     ->  list
(1,2,3) ->  tuple
{"x":1} ->  dict

На первый взгляд, возможно, мы не знакомы с tuple и dict (словарь). Я постараюсь объяснить это в других возможностях.

Переменная похожа на ящик в памяти компьютера, где вы можете хранить одно значение. - Эл Свейгарт

Мы также можем назначить сразу несколько переменных. Есть способ назначить несколько переменных, проверьте код ниже:

>>> a, b, c, d = 1, 2.0, "3", [4]
>>> type(a)
int
>>> type(b)
float
>>> type(c)
str
>>> type(d)
list
>>> x = [1, "2", {"y":3}, [4]]
>>> a, b, c, d = x
>>> print(a, b, c, d)
(1, '2', {'y': 3}, [4])

Что ж, он гибкий, правда? Но у такой гибкости есть свои последствия. Поскольку python не объявляет переменную, он будет иметь уязвимости, такие как неправильная интерпретация переменных, отсутствие возвращаемой информации и т. Д.

Думайте об этом как о шкафчике, вы можете положить что-то и вынуть позже, когда вам это понадобится. Тогда у вас есть еще несколько шкафчиков для хранения вещей. Но без ярлыка или заметок будет сложнее найти предметы или угадать, что внутри шкафчика.

Есть способ уменьшить эту уязвимость, например, используя аннотации переменных (PEP 526) и аннотации функций (PEP 3107).

>>> x: int = 5
>>> y: int
>>> y = 1
>>> z: int = "abc" 
#z will be flagged as error by type checker, but OK at runtime.

Вывод

Python - это один из языков с динамической типизацией , что означает, что не нужно объявлять переменную перед ее использованием. Типы данных обычно совпадают с другими языками программирования. Помимо преимуществ, есть некоторые уязвимости, которые могут вызвать проблемы в будущем.