Prépa Python

Basique — chapitre 9 sur 54

Variables et types de données

Entiers, flottants, chaînes, booléens, None et conversions

60 min9 évaluations

Toute programmation commence par une question : comment stocker de l'information pour la manipuler ? La réponse en Python tient en un mot : la variable. Ce premier chapitre pose les briques indispensables — sans maîtrise parfaite du contenu de ce chapitre, impossible de progresser sereinement.

La notion de variable

Une variable est un nom associé à une valeur stockée en mémoire. En Python, on crée une variable simplement en lui affectant une valeur avec le signe = :

python
age = 30
prenom = "Alice"
taille = 1.72

L'opérateur = s'appelle l'affectation : on lit « la variable age reçoit la valeur 30 ». Une fois créée, la variable s'utilise comme une valeur :

python
age = 30
print("J'ai", age, "ans.")

Règles de nommage des variables

Les noms de variables en Python suivent des règles strictes :

Règle Exemple valide Exemple invalide
Commence par une lettre ou _ age, _prive 2chats ❌
Contient lettres, chiffres, _ nom_utilisateur, x1 nom-utilisateur ❌
Sensible à la casse Age et age sont différents —
Ne peut pas être un mot-clé réservé — if, for, class, def... ❌

Démonstration d'une erreur classique :

python
2chats = 2

Convention PEP 8 — snake_case

Par convention, on écrit les noms de variables en snake_case : mots en minuscules séparés par _.

python
# ✅ Conforme PEP 8
nombre_de_clients = 50
prix_unitaire_ht = 19.99

# ❌ À éviter
NombreDeClients = 50       # ← camelCase (style Java/JavaScript)
NOMBRE = 50                # ← réservé aux constantes

Les types simples (built-in)

Python possède plusieurs types natifs à connaître parfaitement pour le TOSA.

Les entiers (int)

Nombres sans virgule, précision illimitée (Python peut manipuler des entiers aussi grands que la mémoire le permet).

python
age = 30
grand_nombre = 10 ** 100   # un gogol
print(age, type(age))
print(grand_nombre)

Les flottants (float)

Nombres à virgule, notation avec un point (.) en anglais — jamais de virgule.

python
pi = 3.14159
temperature = -5.5
ratio = 2.0      # un float même si la partie décimale est 0
print(pi, type(pi))

Les chaînes de caractères (str)

Textes délimités par des guillemets simples '...' ou doubles "...". Les deux sont équivalents.

python
nom = "Alice"
ville = 'Paris'
print(nom, type(nom))

Pour inclure des apostrophes ou guillemets dans le texte, on alterne les délimiteurs :

python
phrase = "L'ami de Bob dit \"bonjour\"."
autre = 'Il a dit "salut"'
print(phrase)
print(autre)

On verra les chaînes en détail au Chapitre 3.

Les booléens (bool)

Deux valeurs seulement : True (vrai) ou False (faux). Attention à la majuscule — c'est une convention Python stricte.

python
est_majeur = True
a_remise = False
print(est_majeur, type(est_majeur))

Les booléens résultent le plus souvent de comparaisons :

python
age = 25
est_majeur = age >= 18
print(est_majeur)

La valeur None

None représente l'absence de valeur. C'est l'équivalent Python de null ou nil dans d'autres langages.

python
resultat = None
print(resultat, type(resultat))

On l'utilise notamment :

  • Comme valeur par défaut d'une variable pas encore initialisée.
  • Comme valeur de retour d'une fonction qui ne renvoie « rien ».

La fonction type()

Pour connaître le type d'une valeur ou variable, on utilise la fonction native type() :

python
print(type(42))
print(type(3.14))
print(type("Alice"))
print(type(True))
print(type(None))

Les conversions de type (casting)

Python permet de convertir une valeur d'un type à un autre avec des fonctions portant le nom du type cible :

Fonction Conversion vers Exemple
int(x) Entier int("42") → 42
float(x) Flottant float("3.14") → 3.14
str(x) Chaîne str(42) → "42"
bool(x) Booléen bool(0) → False

Démonstrations :

python
# Chaîne → entier
age_txt = "30"
age = int(age_txt)
print(age, type(age))
python
# Entier → chaîne (pour concaténer du texte)
age = 30
message = "J'ai " + str(age) + " ans."
print(message)
python
# Flottant → entier : ATTENTION, la partie décimale est TRONQUÉE (pas arrondie)
print(int(3.7))
print(int(-3.7))

Conversions impossibles

Toutes les conversions ne sont pas possibles. int("abc") lève une ValueError :

python
int("abc")

Alors que int("42") fonctionne car la chaîne contient un entier valide :

python
print(int("42"))

Le booléen en conversion

Un point important pour le TOSA : toute valeur peut être convertie en booléen. Sont considérés False :

  • Le nombre 0 (entier ou flottant).
  • La chaîne vide "".
  • Les collections vides [], {}, ().
  • La valeur None.

Tout le reste est True.

python
print(bool(0))        # False
print(bool(42))       # True
print(bool(""))       # False
print(bool("Bonjour"))# True
print(bool([]))       # False
print(bool([1, 2]))   # True
print(bool(None))     # False

Exercices

quiz 01.01.q1réponse unique
Quel est le type de x = 3.0 ?
quiz 01.01.q2réponse unique
Lequel de ces noms de variables est invalide en Python ?
quiz 01.01.q3réponse unique
Que renvoie int("3.7") ?
quiz 01.01.q4réponse unique
Que vaut bool("") ?
quiz 01.01.q5réponse unique
Quelle est la bonne façon de comparer une variable à None ?
quiz 01.01.q6réponse unique
Que renvoie ce code ?
x = 10
x = "dix"
print(type(x))

exercice 01.01.x1à faire

Un étudiant obtient 3 notes : 12, 15 et 9. Écrivez un programme qui :

  1. Stocke ces notes dans 3 variables note1, note2 et note3.
  2. Calcule leur moyenne et la range dans la variable moyenne.
  3. Affiche un message de la forme : "La moyenne est 12.0 sur 20".

exercice 01.01.x2à faire

Écrivez un programme qui demande à l'utilisateur son âge, puis affiche dans quelle année il est né (en supposant l'année courante 2026).

Le message doit être de la forme Vous êtes né(e) en 2001.


exercice 01.01.x3à faire

Écrivez un programme qui convertit la température celsius en Fahrenheit, sachant que F = C × 9/5 + 32. Rangez le résultat dans la variable fahrenheit.


À retenir