Aller au contenu

Partie 1 : Découvrir Python - Variables et entrées/sorties


Programmer, c'est écrire une suite d'instructions dans un langage compris par l'ordinateur pour lui faire accomplir une tâche. En SNT, le langage utilisé est Python, créé en 1991 par Guido van Rossum. Python est très répandu dans l'enseignement, la science des données, le développement web et l'intelligence artificielle.

Pour écrire et exécuter du Python, plusieurs outils existent :

OutilDescriptionIdéal pour
Console Python (interpréteur)On tape une instruction, Python l'exécute immédiatementTester rapidement une idée
Fichier .py (script)On écrit un programme complet puis on l'exécute d'un blocÉcrire de vrais programmes
ThonnyÉditeur simple avec débogueur intégréDébuter en Python
EduPythonSuite pédagogique (éditeur + modules scientifiques)Maths et sciences
Basthon (en ligne)Python dans le navigateur, rien à installerTravailler sans installation
VS CodeÉditeur professionnel avec extensions PythonAller plus loin
# Mon tout premier programme Python
print("Bonjour, bienvenue en SNT !")
>>> 2 + 3
5
>>> print("Bonjour")
Bonjour
>>> "SNT".lower()
'snt'

La console exécute chaque ligne immédiatement et affiche le résultat. Le symbole >>> s'appelle le prompt : c'est Python qui attend votre instruction.

Les commentaires sont des textes ignorés par Python, destinés aux humains qui lisent le code :

# Ceci est un commentaire sur une ligne entière
age = 16 # Ceci est un commentaire en fin de ligne
# Les commentaires servent à :
# - expliquer POURQUOI on fait quelque chose
# - rendre le code plus lisible
# - désactiver temporairement une ligne de code

Une variable est un espace en mémoire dans lequel on stocke une valeur. On lui donne un nom pour pouvoir la retrouver et l'utiliser plus tard. On peut la voir comme une étiquette collée sur une boîte contenant une valeur.

prenom = "Alice"
age = 16
taille = 1.68
est_eleve = True

L'opération = s'appelle l'affectation : elle associe une valeur (à droite) à un nom de variable (à gauche).

Chaque valeur en Python a un type qui détermine ce qu'on peut en faire :

TypeDescriptionExemplesRemarques
intNombre entier42, -7, 0Pas de limite de taille en Python !
floatNombre à virgule3.14, -0.5, 1.0Attention : on utilise le point, pas la virgule
strChaîne de caractères (texte)"Bonjour", 'Python'Délimitée par des guillemets simples ' ou doubles "
boolBooléen (vrai ou faux)True, FalseToujours avec une majuscule !

On peut connaître le type d'une variable avec la fonction type() :

x = 42
print(type(x)) # <class 'int'>
y = 3.14
print(type(y)) # <class 'float'>
nom = "Alice"
print(type(nom)) # <class 'str'>
vrai = True
print(type(vrai)) # <class 'bool'>

Règles obligatoires (sinon Python refuse) :

  • Le nom commence par une lettre ou un underscore _
  • Il ne contient que des lettres, chiffres et underscores (pas d'espaces, pas de tirets, pas d'accents)
  • Il ne doit pas être un mot réservé de Python
# ✅ Noms valides
age = 16
nom_eleve = "Alice"
_compteur = 0
note2 = 15.5
# ❌ Noms invalides
2nd_note = 12 # SyntaxError : commence par un chiffre
nom-eleve = "Bob" # SyntaxError : le tiret est interdit
mon age = 16 # SyntaxError : les espaces sont interdits
for = 5 # SyntaxError : for est un mot réservé
Les 35 mots réservés de Python

Ces mots ont une signification spéciale et ne peuvent pas être utilisés comme noms de variables :

False, None, True, and, as, assert, async, await, break, class, continue, def, del, elif, else, except, finally, for, from, global, if, import, in, is, lambda, nonlocal, not, or, pass, raise, return, try, while, with, yield

Conventions (pas obligatoires, mais fortement recommandées) :

  • Utiliser le snake_case : mots en minuscules séparés par des underscores
  • Choisir des noms explicites qui décrivent le contenu
# ❌ Mauvais noms (fonctionnent mais incompréhensibles)
a = 16
b = "Alice"
x = 15.5
# ✅ Bons noms (on comprend immédiatement)
age_eleve = 16
prenom = "Alice"
note_maths = 15.5
x = 10 # x reçoit la valeur 10
x = x + 5 # x reçoit la valeur de x + 5, soit 15

Python propose des raccourcis pour modifier une variable :

x = 10
x += 3 # Équivalent à : x = x + 3 → x vaut 13
x -= 2 # Équivalent à : x = x - 2 → x vaut 11
x *= 4 # Équivalent à : x = x * 4 → x vaut 44
x //= 5 # Équivalent à : x = x // 5 → x vaut 8
x %= 3 # Équivalent à : x = x % 3 → x vaut 2
x **= 4 # Équivalent à : x = x ** 4 → x vaut 16

On peut affecter plusieurs variables en une seule ligne :

# Variante 1 : plusieurs valeurs sur une ligne
x, y, z = 1, 2, 3
# Variante 2 : même valeur pour toutes
a = b = c = 0
# Astuce : échanger deux variables (très pratique !)
x, y = 10, 20
x, y = y, x # Maintenant x = 20 et y = 10

On a souvent besoin de convertir une valeur d'un type à un autre :

# str → int
age = int("16") # 16
# str → float
taille = float("1.68") # 1.68
# int → str
texte = str(42) # "42"
# float → int (tronque la partie décimale, ne l'arrondit PAS)
n = int(3.7) # 3 (pas 4 !)
n = int(-3.7) # -3 (pas -4 !)
# int → float
x = float(5) # 5.0
# Vers booléen
bool(0) # False (0 est « faux »)
bool(42) # True (tout nombre non nul est « vrai »)
bool("") # False (chaîne vide est « fausse »)
bool("hello") # True (chaîne non vide est « vraie »)
OpérateurSignificationExempleRésultat
+Addition7 + 310
-Soustraction7 - 34
*Multiplication7 * 321
/Division (toujours un float)7 / 23.5
//Division entière (partie entière)7 // 23
%Modulo (reste de la division)7 % 31
**Puissance2 ** 101024

Python respecte les mêmes règles de priorité qu'en mathématiques :

  1. ** (puissance) - priorité la plus haute
  2. *, /, //, % (multiplication, divisions, modulo)
  3. +, - (addition, soustraction) - priorité la plus basse
2 + 3 * 4 # 14 (pas 20 ! La multiplication est prioritaire)
(2 + 3) * 4 # 20 (les parenthèses changent l'ordre)
2 ** 3 ** 2 # 512 (= 2 ** 9, car ** s'évalue de droite à gauche)
prenom = "Alice"
nom = "Martin"
# Concaténation (assemblage de chaînes)
nom_complet = prenom + " " + nom
print(nom_complet) # Alice Martin
# Répétition
ligne = "-" * 30
print(ligne) # ------------------------------
# Longueur
print(len(prenom)) # 5
# Accès à un caractère (l'index commence à 0 !)
print(prenom[0]) # A (premier caractère)
print(prenom[1]) # l (deuxième caractère)
print(prenom[-1]) # e (dernier caractère)
print(prenom[-2]) # c (avant-dernier)
texte = "Bonjour le Monde"
texte.upper() # "BONJOUR LE MONDE" (tout en majuscules)
texte.lower() # "bonjour le monde" (tout en minuscules)
texte.capitalize() # "Bonjour le monde" (1re lettre en majuscule)
texte.replace("Monde", "Python") # "Bonjour le Python"
texte.count("o") # 3 (nombre d'occurrences de "o")
texte.startswith("Bon") # True
texte.endswith("de") # True
" espaces ".strip() # "espaces" (supprime les espaces autour)
"a,b,c".split(",") # ["a", "b", "c"] (découpe en liste)
# Trois façons d'écrire une chaîne - elles sont équivalentes :
message1 = 'Bonjour'
message2 = "Bonjour"
# Utile quand la chaîne contient des guillemets :
phrase1 = "L'élève travaille" # Guillemets doubles autour d'une apostrophe
phrase2 = 'Il a dit "bonjour"' # Guillemets simples autour de guillemets doubles
# Triples guillemets : pour les textes sur plusieurs lignes
poeme = """Roses are red,
Violets are blue,
Python is great,
And so are you."""
# Caractères spéciaux avec l'antislash \
print("Première ligne\nDeuxième ligne") # \n = saut de ligne
print("Colonne1\tColonne2") # \t = tabulation
print("Il a dit : \"Bonjour\"") # \" = guillemet dans la chaîne

La fonction print() est très flexible. Voici toutes les façons de l'utiliser :

nom = "Alice"
age = 16
print("Bonjour", nom, "tu as", age, "ans")
# Bonjour Alice tu as 16 ans

Les éléments sont automatiquement séparés par un espace et suivis d'un saut de ligne.

Paramètres utiles de print() :

# sep : changer le séparateur (par défaut : espace)
print("Alice", "Bob", "Charlie", sep=", ")
# Alice, Bob, Charlie
print("2026", "07", "06", sep="-")
# 2026-07-06
# end : changer ce qui est ajouté à la fin (par défaut : saut de ligne)
print("Chargement", end="...")
print("Terminé !")
# Chargement...Terminé !
# Afficher sans saut de ligne dans une boucle
for i in range(5):
print(i, end=" ")
# 0 1 2 3 4

La fonction input() affiche un message et attend que l'utilisateur tape quelque chose. Elle renvoie toujours une chaîne de caractères (str) :

prenom = input("Comment t'appelles-tu ? ")
print(f"Bonjour {prenom} !")

Un programme Python est une séquence (suite ordonnée) d'instructions exécutées les unes après les autres, de haut en bas :

# Étape 1 : lire les données
longueur = float(input("Longueur du rectangle : "))
largeur = float(input("Largeur du rectangle : "))
# Étape 2 : calculer
aire = longueur * largeur
perimetre = 2 * (longueur + largeur)
# Étape 3 : afficher les résultats
print(f"Aire : {aire}")
print(f"Périmètre : {perimetre}")