Le type n'est pas déclaré explicitement et peut changer :
# Python (dynamique)
ma_variable = "Bonjour"
ma_variable = 5 # ok
// C++ (statique) — le type est fixé à la déclaration
int ma_variable = 5;
// ma_variable = "Python"; → erreur de compilation
On ne peut pas mélanger des types dans une opération sans conversion explicite :
# Python (fortement typé)
50 + "50" # → TypeError
// JavaScript (faiblement typé)
50 + "50" # → "5050" (conversion silencieuse)
Python refuse et force le développeur à choisir la conversion souhaitée — ce qui évite les comportements imprévus.