Python : Les types
int, float, str, bool, None, le typage dynamique, les conversions et les f-strings.
Python : Les types
Python est typé dynamiquement : on ne déclare pas le type d'une variable, il est déduit de la valeur, et il peut changer.
# Les types de base
age = 30 # int : entier
pi = 3.14 # float : nombre à virgule
nom = "Alice" # str : chaîne de caractères
actif = True # bool : True / False (avec majuscule)
rien = None # NoneType : absence de valeur (comme null)
print(type(age)) # <class 'int'>age = 30 # int : entierpi = 3.14 # float : nombre à virgulenom = "Alice" # str : chaîne de caractèresactif = True # bool : True / False (avec majuscule)rien = None # NoneType : absence de valeur (comme null) print(type(age)) # <class 'int'>Le type suit la valeur, pas la variable : réaffecter une autre valeur change le type, sans erreur.
x = 5
x = "cinq" # parfaitement légalx = 5x = "cinq" # parfaitement légal# Conversions
Python est fortement typé : il ne mélange pas les types tout seul. Il faut convertir explicitement.
"1" + 2 # TypeError : on ne concatène pas str et int
"1" + str(2) # "12"
int("42") # 42
float("3.14") # 3.14
str(30) # "30""1" + 2 # TypeError : on ne concatène pas str et int"1" + str(2) # "12"int("42") # 42float("3.14") # 3.14str(30) # "30"C'est une différence nette avec JavaScript, qui aurait deviné (souvent mal).
# Les chaînes et les f-strings
Les chaînes s'écrivent avec " ou ', et proposent beaucoup de méthodes.
nom = "alice"
nom.upper() # "ALICE"
nom.capitalize() # "Alice"
"a,b,c".split(",") # ['a', 'b', 'c']
len(nom) # 5nom = "alice"nom.upper() # "ALICE"nom.capitalize() # "Alice""a,b,c".split(",") # ['a', 'b', 'c']len(nom) # 5Pour insérer des valeurs, les f-strings (préfixe f) sont la façon moderne et lisible :
age = 30
message = f"{nom} a {age} ans" # "alice a 30 ans"
calcul = f"Résultat : {2 * 21}" # "Résultat : 42"age = 30message = f"{nom} a {age} ans" # "alice a 30 ans"calcul = f"Résultat : {2 * 21}" # "Résultat : 42"# Booléens et « truthiness »
En condition, Python considère certaines valeurs comme fausses sans qu'elles soient False : 0, 0.0, "", None, et les collections vides ([], {}, ()).
if nom: # vrai si nom n'est pas une chaîne vide
print("nom renseigné")
if not liste: # vrai si la liste est vide
print("liste vide")if nom: # vrai si nom n'est pas une chaîne vide print("nom renseigné") if not liste: # vrai si la liste est vide print("liste vide")C'est pratique et lisible, mais attention : if x: est faux aussi bien pour None que pour 0 ou une liste vide. Quand la distinction compte, teste explicitement (if x is None:).
# La suite
- Les collections - list, tuple, dict, set
- Structures de contrôle - conditions et boucles
- Python : Introduction - le hub de la série