Variables et types
Mémoriser une valeur, connaître sa nature, et lire ce que l'utilisateur tape au clavier
§1.Une variable, c'est une étiquette
Jusqu'ici tes programmes oublient tout instantanément. Une variable règle ça : c'est un nom que tu colles sur une valeur pour pouvoir la retrouver plus tard.
L'image du « tiroir dans lequel on range une valeur » est répandue mais un peu fausse. En Python, une variable est plutôt une ÉTIQUETTE qu'on attache à une valeur. Plusieurs étiquettes peuvent désigner la même valeur, et on peut décoller une étiquette pour la recoller ailleurs.
age = 17print(age) age = 18 # on recolle l'étiquette sur une autre valeurprint(age)Le signe = n'est PAS l'égalité mathématique. Il se lit « reçoit » : age reçoit 17. C'est une action, pas une affirmation. D'ailleurs age = age + 1 est absurde en maths, mais parfaitement normal en programmation.
§3.Nommer ses variables
- Ce qui est autorisé
- Des lettres, des chiffres et des soulignés. Pas d'espace, pas d'accent, et jamais un chiffre en première position.
- Exemple. note_finale, x2, prenom sont valides. 2x et note finale ne le sont pas.
- La casse compte
- age, Age et AGE sont trois variables différentes. C'est une source d'erreurs classique.
- Choisis des noms parlants
- moyenne_classe vaut mieux que m. Tu écris ton code une fois, tu le relis dix fois — et quelqu'un d'autre le lira peut-être.
- La convention Python
- Tout en minuscules, mots séparés par des soulignés : nombre_eleves, prix_total. On appelle ça le snake_case.
§4.Les types : toute valeur a une nature
17 et "17" ne sont pas la même chose. Le premier est un NOMBRE, avec lequel on peut calculer. Le second est du TEXTE qui ressemble à un nombre — on ne peut pas le diviser par deux.
Cette nature s'appelle le TYPE. Python en manipule quatre de base, que tu vas croiser en permanence.
§5.Les quatre types fondamentaux
| Type | Nom complet | Exemples | À quoi ça sert |
|---|---|---|---|
| int | entier | 0, 17, -3, 1000000 | Compter, indexer, tout ce qui est dénombrable |
| float | nombre à virgule | 3.14, -0.5, 2.0 | Mesurer : moyennes, prix, distances |
| str | chaîne de caractères | "Awa", "17", "" | Tout ce qui est texte |
| bool | booléen | True, False | Répondre par oui ou non à une condition |
En Python, on écrit la virgule décimale avec un POINT : 3.14 et non 3,14. Et True et False prennent une majuscule.
print(type(17))print(type(3.14))print(type("Awa"))print(type(True))La fonction type() est ton meilleur outil de diagnostic. Quand un calcul donne un résultat absurde, la première question à se poser est : de quel type sont vraiment mes valeurs ?
§8.Lire ce que tape l'utilisateur
Un programme qui affiche toujours la même chose n'a pas grand intérêt. La fonction input() lit une ligne saisie par l'utilisateur et te la donne.
Un point crucial, responsable d'innombrables bugs de débutant : input() renvoie TOUJOURS du texte. Même si l'utilisateur tape 17, tu reçois la chaîne "17", pas le nombre 17.
Dans l'atelier SunuCode, tu prépares les réponses à l'avance dans le panneau « Entrée », une par ligne. Sur un ordinateur, elles seraient tapées au clavier pendant l'exécution — le comportement du programme est identique.
L'utilisateur tape 17, puis 5.
a = input()b = input()print(a + b)Pas 22. Comme a et b sont du TEXTE, le + les a collés bout à bout au lieu de les additionner. C'est le bug numéro un du débutant en Python.
§10.Convertir d'un type à l'autre
- int(x)
- Transforme en entier. Échoue si le texte ne représente pas un entier.
- Exemple. int("17") donne 17. int("bonjour") lève une ValueError.
- float(x)
- Transforme en nombre à virgule.
- Exemple. float("3.5") donne 3.5. float(7) donne 7.0.
- str(x)
- Transforme en texte. Fonctionne toujours.
- Exemple. str(17) donne "17".
L'utilisateur tape 17, puis 5.
a = int(input())b = int(input())print(a + b)int(input()) se lit de l'intérieur vers l'extérieur : on lit une ligne, PUIS on la convertit en entier. C'est la formule à retenir pour tout le parcours.
Les entrées sont déjà préparées. Exécute, puis expérimente.
§13.Afficher proprement : les f-strings
Coller du texte et des variables avec des virgules fonctionne, mais devient vite illisible. Python offre une écriture bien plus agréable : préfixe la chaîne par un f, et glisse tes variables entre accolades.
On appelle ça une f-string. C'est la façon moderne et recommandée d'assembler du texte en Python.
prenom = "Awa"age = 17 print("Bonjour " + prenom + ", tu as " + str(age) + " ans") # pénibleprint("Bonjour", prenom + ",", "tu as", age, "ans") # correctprint(f"Bonjour {prenom}, tu as {age} ans") # naturelLa première version oblige à convertir age en texte, sinon TypeError. La f-string s'en charge toute seule. Elle accepte même des calculs : f"L'an prochain tu auras {age + 1} ans".
À retenir
- Une variable est un nom attaché à une valeur ; le = signifie « reçoit », pas « est égal à ».
- Convention Python : minuscules et soulignés (note_finale). La casse compte.
- Quatre types de base : int, float, str, bool. type(x) révèle celui d'une valeur.
- La division / donne toujours un float : 10 / 2 vaut 5.0.
- input() renvoie TOUJOURS du texte — enveloppe-le dans int() ou float() pour calculer.
- Les f-strings sont la façon naturelle d'assembler du texte : f"Bonjour {prenom}".
- a, b = b, a échange deux variables en une ligne.