Guide Python — Partie 1
Les bases du langage : types, variables, conditions, listes et boucles
Conçu pour Jupyter Notebook · Exemples exécutables
1. Les Types Natifs
Les types natifs sont les briques de base de tout programme Python. Trois familles essentielles : les
chaînes de caractères, les nombres et les booléens.
1.1 Les chaînes de caractères (str)
Elles servent à représenter du texte : un prénom, une adresse, un message d'erreur…
Exemples — str
# Déclaration d'une chaîne de caractères
prenom = "Alice"
pays = "France"
# Affichage
print(prenom) # Alice
print(pays) # France
# Longueur d'une chaîne
print(len(prenom)) # 5
# Mise en majuscules / minuscules
print([Link]()) # ALICE
print([Link]()) # alice
■ Résultat :
Alice
France
ALICE
alice
1.2 Les nombres (int et float)
Exemples — int / float
age = 25 # int (entier)
salaire = 2450.50 # float (décimal)
print(type(age)) # <class 'int'>
print(type(salaire)) # <class 'float'>
1.3 Les booléens (bool)
Exemples — bool
est_majeur = True
est_connecte = False
print(est_majeur) # True
print(type(est_majeur)) # <class 'bool'>
2. Le Formatage des Chaînes de Caractères
Pour insérer des variables dans une chaîne, Python offre deux approches principales : les f-strings
(moderne et recommandé) et la méthode .format().
2.1 Les f-strings
f-strings
prenom = "Bob"
age = 30
# Syntaxe : f avant les guillemets, variable entre accolades
message = f"Bonjour {prenom}, tu as {age} ans."
print(message)
# Calcul directement dans la f-string
print(f"Dans 10 ans tu auras {age + 10} ans.")
■ Résultat :
Bonjour Bob, tu as 30 ans.
Dans 10 ans tu auras 40 ans.
2.2 La méthode .format()
.format()
ville = "Paris"
population = 2_161_000
print("La ville de {} compte {} habitants.".format(ville, population))
■ Résultat :
La ville de Paris compte 2161000 habitants.
3. Manipulation des Objets Natifs
On peut vérifier le type d'un objet avec type() et le convertir avec int(), float(), str().
Conversions de types
valeur = '42' # c'est une chaîne !
print(type(valeur)) # <class 'str'>
# Conversion en entier
nombre = int(valeur)
print(type(nombre)) # <class 'int'>
print(nombre + 8) # 50
# Arrondi avec round()
pi = 3.14159
print(round(pi, 2)) # 3.14
■ Résultat :
<class 'str'>
<class 'int'>
50
3.14
4. Les Opérateurs Mathématiques
Opérateurs
a, b = 17, 5
print(a + b) # Addition → 22
print(a - b) # Soustraction → 12
print(a * b) # Multiplication → 85
print(a / b) # Division → 3.4
print(a // b) # Division entière → 3 (quotient)
print(a % b) # Modulo → 2 (reste)
print(a ** 2) # Puissance → 289
■ Résultat :
22
12
85
3.4
289
■ Astuce : Le modulo (%) est très utile pour savoir si un nombre est pair : if n % 2 == 0.
5. Interagir avec l'Utilisateur
La fonction input() attend une saisie clavier et renvoie toujours une chaîne.
input()
# Dans Jupyter : exécutez la cellule, tapez votre réponse puis Entrée
nom = input("Quel est ton prénom ? ")
print(f"Bonjour {nom} !")
# ATTENTION : input() renvoie toujours un str
# Pour faire des calculs, convertissez :
age = int(input("Quel est ton âge ? "))
print(f"Dans 5 ans : {age + 5} ans")
■ Astuce : Dans Jupyter Notebook, la cellule se bloque jusqu'à ce que vous appuyiez sur Entrée.
6. Les Variables
Variables
# Déclaration et affectation
tva = 0.20
prix_ht = 100
prix_ttc = prix_ht * (1 + tva)
print(prix_ttc) # 120.0
# Réassignation
tva = 0.055 # Taux réduit",
prix_ttc = prix_ht * (1 + tva)
print(prix_ttc) # 105.5
# Vérifier l'identifiant mémoire
x = [1, 2, 3]
y = x # y pointe vers le MÊME objet !
[Link](4)
print(x) # [1, 2, 3, 4] ← x est aussi modifié
■ Résultat :
120.0
105.5
[1, 2, 3, 4]
7. Les Structures Conditionnelles
Avec if / elif / else, on adapte le comportement du script selon des conditions.
if / elif / else
note = 14
if note >= 16:
print("Très bien !")
elif note >= 12:
print("Bien")
elif note >= 10:
print("Passable")
else:
print("Insuffisant")
■ Résultat :
Bien
Opérateurs logiques
# Opérateurs de comparaison : > < >= <= == !=
# Opérateurs logiques : and or not
age = 20
carte = True
if age >= 18 and carte:
print("Accès autorisé")
else:
print("Accès refusé")
■ Résultat :
Accès autorisé
8. Les Listes
Listes — méthodes essentielles
fruits = ['pomme', 'banane', 'cerise']
# Accès par index (commence à 0)
print(fruits[0]) # pomme
print(fruits[-1]) # cerise (dernier)
# Ajouter un élément
[Link]('mangue')
print(fruits) # ['pomme', 'banane', 'cerise', 'mangue']
# Supprimer un élément
[Link]('banane')
print(fruits) # ['pomme', 'cerise', 'mangue']
# Longueur
print(len(fruits)) # 3
■ Résultat :
pomme
cerise
['pomme', 'banane', 'cerise', 'mangue']
['pomme', 'cerise', 'mangue']
9. La Fonction range()
range() génère une séquence de nombres. C'est l'outil de base pour contrôler le nombre d'itérations
d'une boucle for.
9.1 Syntaxe
Syntaxe de range()
range(stop) # de 0 à stop-1
range(start, stop) # de start à stop-1
range(start, stop, step) # avec un pas
9.2 Exemples pratiques
range() — exemples
# range(5) → 0, 1, 2, 3, 4
print(list(range(5))) # [0, 1, 2, 3, 4]
# range(1, 6) → 1, 2, 3, 4, 5
print(list(range(1, 6))) # [1, 2, 3, 4, 5]
# range(0, 11, 2) → nombres pairs
print(list(range(0, 11, 2))) # [0, 2, 4, 6, 8, 10]
# Compte à rebours avec step négatif
print(list(range(10, 0, -1))) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
■ Résultat :
[0, 1, 2, 3, 4]
[1, 2, 3, 4, 5]
[0, 2, 4, 6, 8, 10]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
■ Astuce : range() ne crée pas réellement une liste en mémoire, c'est un générateur. Utilisez
list(range(...)) pour le visualiser.
10. La Boucle for
La boucle for parcourt un objet itérable (liste, chaîne, range…) élément par élément. C'est la boucle
la plus utilisée en Python.
10.1 Syntaxe de base
Structure de for
for variable in iterable:
# bloc de code indenté (4 espaces ou 1 Tab)
instruction_1
instruction_2
# Ici on est sorti de la boucle
10.2 Parcourir une liste
for sur une liste
fruits = ['pomme', 'banane', 'cerise']
for fruit in fruits:
print(f"J'aime les {fruit}s")
■ Résultat :
J'aime les pommes
J'aime les bananes
J'aime les cerises
10.3 for + range() — Répéter N fois
for + range
# Afficher 'Bonjour !' 5 fois
for i in range(5):
print(f"Itération n°{i} : Bonjour !")
■ Résultat :
Itération n°0 : Bonjour !
Itération n°1 : Bonjour !
Itération n°2 : Bonjour !
Itération n°3 : Bonjour !
Itération n°4 : Bonjour !
10.4 Calcul avec for — somme des 100 premiers entiers
Accumulation dans une boucle
total = 0
for n in range(1, 101): # de 1 à 100 inclus
total = total + n # ou : total += n
print(f"Somme de 1 à 100 = {total}")
■ Résultat :
Somme de 1 à 100 = 5050
10.5 Parcourir une chaîne de caractères
for sur une chaîne
mot = 'Python'
for lettre in mot:
print(lettre, end=" ") # end=" " évite le saut de ligne
■ Résultat :
P y t h o n
10.6 for avec enumerate() — index + valeur
enumerate()
langages = ['Python', 'JavaScript', 'Rust']
for index, langage in enumerate(langages, start=1):
print(f"{index}. {langage}")
■ Résultat :
1. Python
2. JavaScript
3. Rust
■ Astuce : enumerate() évite d'avoir à gérer un compteur manuel. Préférez-le à range(len(liste)).
10.7 Listes imbriquées (boucle for dans for)
Double boucle for
matrice = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
for ligne in matrice:
for valeur in ligne:
print(valeur, end=" ")
print() # saut de ligne après chaque ligne
■ Résultat :
1 2 3
4 5 6
7 8 9
11. La Boucle while
La boucle while répète un bloc TANT QUE une condition est vraie. On l'utilise quand on ne sait pas à
l'avance combien d'itérations seront nécessaires.
11.1 Syntaxe de base
Structure de while
while condition:
# bloc exécuté tant que condition est True
instruction
# Ne pas oublier de faire évoluer la condition !
11.2 Exemple simple — Compte à rebours
Compte à rebours
compteur = 5
while compteur > 0:
print(f"Compte à rebours : {compteur}")
compteur -= 1 # compteur = compteur - 1
print("Décollage ! ■")
■ Résultat :
Compte à rebours : 5
Compte à rebours : 4
Compte à rebours : 3
Compte à rebours : 2
Compte à rebours : 1
Décollage ! ■
11.3 Validation d'une saisie utilisateur
Le cas d'usage classique du while : continuer à demander une entrée jusqu'à ce qu'elle soit valide.
Validation d'entrée
# Demander un nombre positif à l'utilisateur
nombre = int(input("Entrez un nombre positif : "))
while nombre <= 0:
print("Erreur : le nombre doit être positif !")
nombre = int(input("Réessayez : "))
print(f"Merci ! Vous avez saisi : {nombre}")
■ Astuce : Ce pattern est très courant dans les programmes réels : on boucle jusqu'à obtenir une
donnée conforme.
11.4 Boucle infinie et break
Parfois on veut une boucle qui tourne jusqu'à un événement précis. On utilise while True: avec un
break pour en sortir.
while True + break
# Menu interactif
while True:
print("\n--- MENU ---")
print("1. Dire bonjour")
print("2. Quitter")
choix = input("Votre choix : ")
if choix == "1":
print("Bonjour !")
elif choix == "2":
print("Au revoir !")
break # Sort de la boucle
else:
print("Choix invalide.")
11.5 continue — Sauter une itération
continue dans while
# Afficher les nombres de 1 à 10 en sautant les multiples de 3
i = 0
while i < 10:
i += 1
if i % 3 == 0:
continue # Passe à l'itération suivante
print(i, end=' ')
■ Résultat :
1 2 4 5 7 8 10
■ Astuce : continue saute le reste du bloc et passe à l'itération suivante. break sort complètement de
la boucle.
11.6 Tableau comparatif for vs while
Critère for while
Nombre d'itérations Connu à l'avance Inconnu / conditionnel
Itérable nécessaire ? Oui (liste, range…) Non
Risque de boucle infinie ? Non Oui si mal géré
Cas typique Parcourir une liste Attendre une condition
Exemple for i in range(10): while user != 'ok':
12. Exercice Final — Devine le Nombre
Mettez en pratique tout ce que vous avez appris dans cet exercice complet.
Exercice complet — Jupyter Notebook
import random
# 1. Générer un nombre aléatoire entre 1 et 100
secret = [Link](1, 100)
tentatives = 0
MAX_ESSAIS = 7
print('=== Jeu : Devine le Nombre ===')
print(f'Trouve le nombre entre 1 et 100 en {MAX_ESSAIS} essais !')
# 2. Boucle while : continuer tant que non trouvé
while tentatives < MAX_ESSAIS:
tentatives += 1
proposition = int(input(f'Essai {tentatives}/{MAX_ESSAIS} : '))
if proposition == secret:
print(f'Bravo ! Trouvé en {tentatives} essai(s) !')
break
elif proposition < secret:
print('Trop petit !')
else:
print('Trop grand !')
else:
# Le else du while s'exécute si la boucle finit sans break
print(f'Perdu ! Le nombre était {secret}.')
■ Astuce : Le bloc else d'une boucle while ou for s'exécute seulement si la boucle s'est terminée
normalement (sans break). C'est une particularité Python !