Partie 1 : Découvrir Python - Variables et entrées/sorties
1. Qu'est-ce que la programmation ?
Section intitulée « 1. Qu'est-ce que la programmation ? »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.
1.1. Les environnements de travail
Section intitulée « 1.1. Les environnements de travail »Pour écrire et exécuter du Python, plusieurs outils existent :
| Outil | Description | Idéal pour |
|---|---|---|
| Console Python (interpréteur) | On tape une instruction, Python l'exécute immédiatement | Tester 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 |
| EduPython | Suite pédagogique (éditeur + modules scientifiques) | Maths et sciences |
| Basthon (en ligne) | Python dans le navigateur, rien à installer | Travailler sans installation |
| VS Code | Éditeur professionnel avec extensions Python | Aller plus loin |
# Mon tout premier programme Pythonprint("Bonjour, bienvenue en SNT !")1.2. Console interactive vs script
Section intitulée « 1.2. Console interactive vs script »>>> 2 + 35>>> 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.
nom = input("Comment t'appelles-tu ? ")print(f"Bonjour {nom} !")print("Bienvenue en cours de SNT.")Un script est un fichier texte contenant plusieurs instructions. On l'exécute d'un bloc avec le bouton « Exécuter » de l'éditeur ou via le terminal : python mon_programme.py.
1.3. Les commentaires
Section intitulée « 1.3. Les commentaires »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èreage = 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 code2. Variables et affectations
Section intitulée « 2. Variables et affectations »2.1. Qu'est-ce qu'une variable ?
Section intitulée « 2.1. Qu'est-ce qu'une variable ? »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 = 16taille = 1.68est_eleve = TrueL'opération = s'appelle l'affectation : elle associe une valeur (à droite) à un nom de variable (à gauche).
2.2. Les types de données de base
Section intitulée « 2.2. Les types de données de base »Chaque valeur en Python a un type qui détermine ce qu'on peut en faire :
| Type | Description | Exemples | Remarques |
|---|---|---|---|
int | Nombre entier | 42, -7, 0 | Pas de limite de taille en Python ! |
float | Nombre à virgule | 3.14, -0.5, 1.0 | Attention : on utilise le point, pas la virgule |
str | Chaîne de caractères (texte) | "Bonjour", 'Python' | Délimitée par des guillemets simples ' ou doubles " |
bool | Booléen (vrai ou faux) | True, False | Toujours avec une majuscule ! |
On peut connaître le type d'une variable avec la fonction type() :
x = 42print(type(x)) # <class 'int'>
y = 3.14print(type(y)) # <class 'float'>
nom = "Alice"print(type(nom)) # <class 'str'>
vrai = Trueprint(type(vrai)) # <class 'bool'>2.3. Nommer ses variables
Section intitulée « 2.3. Nommer ses variables »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 validesage = 16nom_eleve = "Alice"_compteur = 0note2 = 15.5
# ❌ Noms invalides2nd_note = 12 # SyntaxError : commence par un chiffrenom-eleve = "Bob" # SyntaxError : le tiret est interditmon age = 16 # SyntaxError : les espaces sont interditsfor = 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 = 16b = "Alice"x = 15.5
# ✅ Bons noms (on comprend immédiatement)age_eleve = 16prenom = "Alice"note_maths = 15.52.4. L'affectation en détail
Section intitulée « 2.4. L'affectation en détail »Affectation simple
Section intitulée « Affectation simple »x = 10 # x reçoit la valeur 10x = x + 5 # x reçoit la valeur de x + 5, soit 15Affectation augmentée (raccourcis)
Section intitulée « Affectation augmentée (raccourcis) »Python propose des raccourcis pour modifier une variable :
x = 10x += 3 # Équivalent à : x = x + 3 → x vaut 13x -= 2 # Équivalent à : x = x - 2 → x vaut 11x *= 4 # Équivalent à : x = x * 4 → x vaut 44x //= 5 # Équivalent à : x = x // 5 → x vaut 8x %= 3 # Équivalent à : x = x % 3 → x vaut 2x **= 4 # Équivalent à : x = x ** 4 → x vaut 16Affectation multiple
Section intitulée « Affectation multiple »On peut affecter plusieurs variables en une seule ligne :
# Variante 1 : plusieurs valeurs sur une lignex, y, z = 1, 2, 3
# Variante 2 : même valeur pour toutesa = b = c = 0
# Astuce : échanger deux variables (très pratique !)x, y = 10, 20x, y = y, x # Maintenant x = 20 et y = 102.5. Conversions de types
Section intitulée « 2.5. Conversions de types »On a souvent besoin de convertir une valeur d'un type à un autre :
# str → intage = int("16") # 16
# str → floattaille = float("1.68") # 1.68
# int → strtexte = 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 → floatx = float(5) # 5.0
# Vers booléenbool(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 »)2.6. Opérations sur les nombres
Section intitulée « 2.6. Opérations sur les nombres »| Opérateur | Signification | Exemple | Résultat |
|---|---|---|---|
+ | Addition | 7 + 3 | 10 |
- | Soustraction | 7 - 3 | 4 |
* | Multiplication | 7 * 3 | 21 |
/ | Division (toujours un float) | 7 / 2 | 3.5 |
// | Division entière (partie entière) | 7 // 2 | 3 |
% | Modulo (reste de la division) | 7 % 3 | 1 |
** | Puissance | 2 ** 10 | 1024 |
Priorité des opérations
Section intitulée « Priorité des opérations »Python respecte les mêmes règles de priorité qu'en mathématiques :
**(puissance) - priorité la plus haute*,/,//,%(multiplication, divisions, modulo)+,-(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)2.7. Opérations sur les chaînes de caractères
Section intitulée « 2.7. Opérations sur les chaînes de caractères »prenom = "Alice"nom = "Martin"
# Concaténation (assemblage de chaînes)nom_complet = prenom + " " + nomprint(nom_complet) # Alice Martin
# Répétitionligne = "-" * 30print(ligne) # ------------------------------
# Longueurprint(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)Quelques méthodes utiles sur les chaînes
Section intitulée « Quelques méthodes utiles sur les chaînes »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") # Truetexte.endswith("de") # True
" espaces ".strip() # "espaces" (supprime les espaces autour)"a,b,c".split(",") # ["a", "b", "c"] (découpe en liste)Guillemets simples, doubles et triples
Section intitulée « Guillemets simples, doubles et triples »# 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 apostrophephrase2 = 'Il a dit "bonjour"' # Guillemets simples autour de guillemets doubles
# Triples guillemets : pour les textes sur plusieurs lignespoeme = """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 ligneprint("Colonne1\tColonne2") # \t = tabulationprint("Il a dit : \"Bonjour\"") # \" = guillemet dans la chaîne3. Entrées et sorties
Section intitulée « 3. Entrées et sorties »3.1. Afficher avec print()
Section intitulée « 3.1. Afficher avec print() »La fonction print() est très flexible. Voici toutes les façons de l'utiliser :
nom = "Alice"age = 16print("Bonjour", nom, "tu as", age, "ans")# Bonjour Alice tu as 16 ansLes éléments sont automatiquement séparés par un espace et suivis d'un saut de ligne.
nom = "Alice"age = 16print(f"Bonjour {nom}, tu as {age} ans")# Bonjour Alice, tu as 16 ans
# On peut mettre des expressions dans les accoladesprint(f"Dans 10 ans, tu auras {age + 10} ans")print(f"Note : {15.6789:.2f}") # Note : 15.68 (2 décimales)nom = "Alice"age = 16print("Bonjour " + nom + ", tu as " + str(age) + " ans")# Plus lourd, il faut convertir les nombres en strnom = "Alice"age = 16print("Bonjour {}, tu as {} ans".format(nom, age))# Méthode plus ancienne, les f-strings sont préféréesParamè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 bouclefor i in range(5): print(i, end=" ")# 0 1 2 3 43.2. Lire une saisie avec input()
Section intitulée « 3.2. Lire une saisie avec input() »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} !")4. Séquences d'instructions
Section intitulée « 4. Séquences d'instructions »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éeslongueur = float(input("Longueur du rectangle : "))largeur = float(input("Largeur du rectangle : "))
# Étape 2 : calculeraire = longueur * largeurperimetre = 2 * (longueur + largeur)
# Étape 3 : afficher les résultatsprint(f"Aire : {aire}")print(f"Périmètre : {perimetre}")© 2026 Corentin Dupont - LyCode
Créé avec Astro Starlight