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().
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).
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.
float("3.14") # 3.14
float("1e3") # 1000.0
float("inf") # inf
float("nan") # nanstr() : 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.).
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.
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
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
Étant donné `a = '10'` et `b = '32'` (chaînes), calculez `total` comme leur somme ENTIÈRE. Évaluez `total`.
Afficher l'indice
int(a) + int(b), sinon vous concaténez les chaînes.
Solution disponible après 3 tentatives
Exercice de révision
Étant donné la liste `values = ['', 'x', 0, None, 1, []]`, construisez `truthy` avec UNIQUEMENT les éléments truthy en utilisant bool(). Évaluez `truthy`.
Afficher l'indice
List comprehension avec filtre bool(v) (ou juste 'if v').
Solution disponible après 3 tentatives
Défi supplémentaire
É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.
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