Initialisation des systèmes...

Baptiste.Dev
Retour aux notes
LangagesDébutantSérie : Python

Python : Les types

int, float, str, bool, None, le typage dynamique, les conversions et les f-strings.

2 min de lecture
Mis à jour hier
pythontypestypagestrf-string

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'>

Le type suit la valeur, pas la variable : réaffecter une autre valeur change le type, sans erreur.

x = 5
x = "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"

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)                # 5

Pour 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"

# 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")

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