Passer au contenu principal
eLearner.app
Module 4 · Leçon 4 sur 416/36 dans le cours~10 min
Leçons du module (4/4)

Conversions de type

Python est fortement typé : il n'ajoute jamais une chaîne à un nombre à moins que vous ne le lui demandiez. Pour passer d'un type à un autre, on utilise les fonctions constructeurs : int(), float(), str(), bool(), list(), tuple(), set().

Python
int("42")        # 42
float("3.14")    # 3.14
str(42)          # '42'
list("abc")      # ['a', 'b', 'c']
tuple([1, 2])    # (1, 2)
set([1, 1, 2])   # {1, 2}

int() avec des chaînes

int("42") fonctionne ; int("42.5") lève un ValueError. Pour les chaînes décimales, passez d'abord par float : int(float("42.5"))42 (tronque, n'arrondit pas).

Python
int("42")         # 42
int("  42  ")     # 42        (strip automatico degli spazi)
int("42.5")       # ValueError
int(float("42.5"))  # 42
int("ff", 16)     # 255       (base esplicita)

float() avec des chaînes

Accepte les notations décimales et scientifiques.

Python
float("3.14")      # 3.14
float("1e3")       # 1000.0
float("inf")       # inf
float("nan")       # nan

str() : la conversion "amicale"

str(x) appelle en interne x.__str__() pour obtenir la représentation "humaine". Il existe également repr(x) pour la représentation "débogueur", souvent plus explicite (avec des guillemets pour les chaînes, etc.).

Python
str(3.14)       # '3.14'
str([1, 2])     # '[1, 2]'
str(True)       # 'True'

bool() et truthiness

bool(x) renvoie False uniquement pour les valeurs falsy de Python :

  • False, None
  • valeurs nulles : 0, 0.0
  • récipients vides : "", [], ()introduced, {}, set()

Tout le reste est truthy.

Python
bool(0)       # False
bool("")      # False
bool([])      # False
bool("0")     # True  !  (stringa non vuota)
bool([0])     # True  !  (lista non vuota, anche se contiene 0)

Pattern : analyse d'entrée sécurisée

Python
testo = input("età: ")
try:
    eta = int(testo)
except ValueError:
    print(f"non è un numero: {testo!r}")
    eta = None

Évaluation booléenne (Truthiness)

En Python, chaque objet a une valeur de vérité implicite. Vous pouvez vérifier la valeur booléenne de n'importe quel objet à l'aide de la fonction bool(...). Les collections vides (par exemple "", [], {}, set()) et les valeurs nulles (0, 0.0) sont toujours évaluées à False. Tous les autres objets sont évalués à True.

À vous de jouer

Exercice#python.m4.l4.e1
Tentatives : 0Chargement…

Étant donné `a = '10'` et `b = '32'` (chaînes), calculez `total` comme leur somme ENTIÈRE. Évaluez `total`.

Chargement de l'éditeur…
Afficher l'indice

int(a) + int(b), sinon vous concaténez les chaînes.

Solution disponible après 3 tentatives

Exercice de révision

Exercice#python.m4.l4.e2
Tentatives : 0Chargement…

Étant donné la liste `values = ['', 'x', 0, None, 1, []]`, construisez `truthy` avec UNIQUEMENT les éléments truthy en utilisant bool(). Évaluez `truthy`.

Chargement de l'éditeur…
Afficher l'indice

List comprehension avec filtre bool(v) (ou juste 'if v').

Solution disponible après 3 tentatives

Défi supplémentaire

Exercice#python.m4.l4.e3
Tentatives : 0Chargement…

Étant donné la liste de chaînes `string_numbers = ["1", "2", "3"]`, convertissez chaque élément en un entier à l'aide de `int()` et additionnez-les pour obtenir la valeur `6`. Stockez la somme dans `sum_val` et évaluez-la.

Chargement de l'éditeur…
Afficher l'indice

Accédez aux éléments par index, par exemple int(string_numbers[0]), et additionnez-les.

Solution disponible après 3 tentatives