int42, -7, 0.float3.14, -0.5, 1e-3.str'hello', "bonjour".boolTrue et False.On convertit un type en un autre avec les fonctions éponymes :
int("42") renvoie l'entier 42 ;float(3) renvoie 3.0 ;str(42) renvoie la chaîne "42" ;bool(0) renvoie False (tout nombre non nul donne True).+, -, */7 / 2 donne 3.5.//7 // 2 donne 3.\%7 \% 2 donne 1.**2 ** 10 donne 1024.0.1 + 0.2 ne vaut pas exactement 0.3 (erreur d'arrondi des flottants) ;"3" + "4" donne "34" (concaténation, pas addition) ;type(7 / 1) renvoie float : la division / renvoie toujours un flottant ;int("3.5") provoque une erreur : il faut d'abord passer par float.x = 42
print(type(x)) # <class 'int'>
y = 42.0
print(type(y)) # <class 'float'>
heures = 137 // 60 # 2 heures
minutes = 137 % 60 # 17 minutes
print(f"{heures}h{minutes}min") # 2h17min
print(0.1 + 0.2 == 0.3) # False !
print(abs(0.1 + 0.2 - 0.3) < 1e-9) # True (comparaison correcte)
age = input("Âge : ") # input renvoie toujours un str
age = int(age) # conversion nécessaire pour calculer
print(f"Dans 10 ans : {age + 10}")
print(bool(0)) # False
print(bool("")) # False (chaîne vide)
print(bool([])) # False (liste vide)
print(bool("0")) # True (chaîne non vide !)
Donner le type et la valeur de chaque expression :
17 // 517 / 5"17" + "5"int("17") + int("5")bool("")float(True)3 de type int (quotient de la division entière).3.4 de type float (la division / renvoie toujours un flottant)."175" de type str (concaténation de deux chaînes).22 de type int (on additionne deux entiers après conversion).False de type bool (une chaîne vide est considérée comme fausse).1.0 de type float (True est converti en 1 puis en flottant).Écrire un programme qui demande un entier positif à trois chiffres et affiche séparément le chiffre des centaines, des dizaines et des unités.
Exemple : pour 427, afficher 4, 2, 7.
n = int(input("Entier à 3 chiffres : "))
centaines = n // 100
dizaines = (n % 100) // 10
unites = n % 10
print(f"Centaines : {centaines}")
print(f"Dizaines : {dizaines}")
print(f"Unités : {unites}")
Principe : la division entière par 100 isole les centaines. Le modulo 100 donne les deux derniers chiffres, puis la division entière par 10 isole les dizaines. Le modulo 10 donne les unités.
On dispose d'une durée exprimée en secondes. Écrire un programme qui affiche cette durée en heures, minutes et secondes.
Exemple : pour 3725 secondes, afficher 1h 2min 5s.
total = 3725
h = total // 3600
m = (total % 3600) // 60
s = total % 60
print(f"{h}h {m}min {s}s")
Principe : la division entière par 3600 donne les heures. Le reste (modulo 3600) donne les secondes restantes, que l'on divise par 60 pour obtenir les minutes.
Vérification : $1 × 3600 + 2 × 60 + 5 = 3725$. ✓
Prédire le résultat de chaque expression puis vérifier en Python :
print(0.1 + 0.2 == 0.3)
print(0.1 + 0.2)
print(type(1 + 2.0))
False, 0.30000000000000004, .0.1 et 0.2 ne sont pas représentables exactement en binaire (norme IEEE 754). Leur somme vaut 0.30000000000000004, qui diffère de la représentation interne de 0.3.On compare la valeur absolue de la différence à un seuil très petit :
a = 0.1 + 0.2
b = 0.3
print(abs(a - b) < 1e-9) # True