retirer_accents(mot)
Remplace les voyelles accentuées par leur version sans accent. Utilise deux listes parallèles (avec/sans accents) et .index().
Écris un programme qui crée une liste contenant les 5 premiers multiples de 3 (à partir de 3), puis affiche chaque élément sur une ligne séparée.
3691215multiples = [3, 6, 9, 12, 15]
for nombre in multiples: print(nombre)range()Même exercice, mais sans écrire les valeurs manuellement. Utilise range() et une boucle pour construire la liste.
multiples = []
for i in range(1, 6): multiples.append(i * 3)
print(multiples)Ou directement :
multiples = list(range(3, 16, 3))print(multiples)Ou de manière compacte :
multiples = [i * 3 for i in range (1, 6)]print(multiples)Écris un programme qui crée une liste de prénoms, puis affiche le premier et le dernier élément sans connaître la taille de la liste à l’avance.
prenoms = ["Alice", "Bob", "Charlie", "Diana", "Eve"]
print("Premier :", prenoms[0])print("Dernier :", prenoms[-1])Écris un programme qui vérifie si un prénom saisi par l’utilisateur fait partie d’une liste d’invités.
Liste des invités : Alice, Bob, Charlie, DianaEntrez un prénom : BobBob est dans la liste !Liste des invités : Alice, Bob, Charlie, DianaEntrez un prénom : EveEve n'est pas dans la liste.invites = ["Alice", "Bob", "Charlie", "Diana"]prenom = input("Entrez un prénom : ")
if prenom in invites: print(prenom, "est dans la liste !")else: print(prenom, "n'est pas dans la liste.")Avec répetition:
invites = ["Alice", "Bob", "Charlie", "Diana"]
while True: prenom = input("Entrez un prénom : ")
if prenom in invites: print(prenom, "est dans la liste !") elif prenom == "xox": break else: print(prenom, "n'est pas dans la liste.")Sans utiliser la méthode .count(), écris un programme qui compte combien de fois la valeur 7 apparaît dans la liste suivante :
nombres = [3, 7, 2, 7, 8, 7, 1, 4, 7, 6]Le nombre 7 apparaît 4 fois.nombres = [3, 7, 2, 7, 8, 7, 1, 4, 7, 6]compteur = 0
for n in nombres: if n == 7: compteur = compteur + 1
print("Le nombre 7 apparaît", compteur, "fois.")max()Sans utiliser la fonction max(), écris un programme qui trouve la plus grande valeur dans une liste de nombres.
valeurs = [34, 12, 78, 56, 91, 23, 67]Le maximum est : 91Commence par supposer que le premier élément est le maximum, puis compare avec chaque élément suivant.
valeurs = [34, 12, 78, 56, 91, 23, 67]maximum = valeurs[0]
for valeur in valeurs: if valeur > maximum: maximum = valeur
print("Le maximum est :", maximum)Écris un programme qui sépare une liste de nombres en deux listes : une pour les pairs, une pour les impairs.
nombres = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]Pairs : [2, 4, 6, 8, 10]Impairs : [1, 3, 5, 7, 9]nombres = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]pairs = []impairs = []
for n in nombres: if n % 2 == 0: pairs.append(n) else: impairs.append(n)
print("Pairs :", pairs)print("Impairs :", impairs)Écris un programme qui, à partir d’une liste de nombres, produit une nouvelle liste où chaque élément est la somme de tous les éléments précédents (incluant lui-même).
nombres = [1, 2, 3, 4, 5]Sommes cumulatives : [1, 3, 6, 10, 15]Explication : 1, 1+2=3, 1+2+3=6, 1+2+3+4=10, 1+2+3+4+5=15.
nombres = [1, 2, 3, 4, 5]cumulatif = []somme = 0
for n in nombres: somme = somme + n cumulatif.append(somme)
print("Sommes cumulatives :", cumulatif)Sans utiliser .reverse() ni [::-1], écris un programme qui crée une nouvelle liste contenant les éléments dans l’ordre inverse.
original = [10, 20, 30, 40, 50]Inversée : [50, 40, 30, 20, 10]Parcours la liste originale avec un indice allant de la fin vers le début, ou utilise insert(0, ...) à chaque itération.
original = [10, 20, 30, 40, 50]inversee = []
for i in range(len(original) - 1, -1, -1): inversee.append(original[i])
print("Inversée :", inversee)Le range(len(original) - 1, -1, -1) parcourt les indices de 4 à 0 inclusivement.
Écris un programme qui demande les notes d’un groupe d’étudiants (saisie terminée par -1), puis affiche uniquement les notes de 60 et plus, triées en ordre croissant.
Note (-1 pour terminer) : 85Note (-1 pour terminer) : 42Note (-1 pour terminer) : 73Note (-1 pour terminer) : 58Note (-1 pour terminer) : 91Note (-1 pour terminer) : -1Réussites (triées) : [73, 85, 91]notes = []note = float(input("Note (-1 pour terminer) : "))
while note != -1: notes.append(note) note = float(input("Note (-1 pour terminer) : "))
reussites = []for n in notes: if n >= 60: reussites.append(n)
print("Réussites (triées) :", sorted(reussites))Sans utiliser set(), écris un programme qui crée une nouvelle liste contenant les éléments sans doublons, dans l’ordre d’apparition.
nombres = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]Sans doublons : [3, 1, 4, 5, 9, 2, 6]Pour chaque élément, vérifie s’il est déjà dans la nouvelle liste avant de l’ajouter.
nombres = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]sans_doublons = []
for n in nombres: if n not in sans_doublons: sans_doublons.append(n)
print("Sans doublons :", sans_doublons)Écris un programme qui effectue une rotation à gauche d’une liste : le premier élément va à la fin, tous les autres se décalent d’une position.
lettres = ["A", "B", "C", "D", "E"]Avant : ['A', 'B', 'C', 'D', 'E']Après : ['B', 'C', 'D', 'E', 'A']lettres = ["A", "B", "C", "D", "E"]print("Avant :", lettres)
premier = lettres.pop(0)lettres.append(premier)
print("Après :", lettres)Avec le tranchage :
lettres = ["A", "B", "C", "D", "E"]lettres = lettres[1:] + lettres[:1]print("Après :", lettres)Écris un programme qui fusionne deux listes déjà triées en une seule liste triée, sans utiliser sorted() ni .sort().
liste_a = [1, 4, 7, 9, 12]liste_b = [2, 3, 5, 8, 10, 11]Fusionnée : [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12]Utilise deux indices i et j qui avancent chacun dans leur liste. À chaque étape, ajoute le plus petit des deux éléments pointés.
liste_a = [1, 4, 7, 9, 12]liste_b = [2, 3, 5, 8, 10, 11]fusionnee = []
i = 0j = 0
while i < len(liste_a) and j < len(liste_b): if liste_a[i] <= liste_b[j]: fusionnee.append(liste_a[i]) i = i + 1 else: fusionnee.append(liste_b[j]) j = j + 1
while i < len(liste_a): fusionnee.append(liste_a[i]) i = i + 1
while j < len(liste_b): fusionnee.append(liste_b[j]) j = j + 1
print("Fusionnée :", fusionnee)Deux listes parallèles contiennent les noms des étudiants et leurs notes. Écris un programme qui affiche le bulletin complet et identifie l’étudiant avec la meilleure note.
noms = ["Alice", "Bob", "Charlie", "Diana", "Eve"]notes = [88, 72, 95, 81, 90]=== Bulletin ===Alice : 88Bob : 72Charlie : 95Diana : 81Eve : 90
Meilleure note : Charlie avec 95Trouve l’indice du maximum dans la liste notes, puis utilise cet indice pour retrouver le nom correspondant dans noms.
noms = ["Alice", "Bob", "Charlie", "Diana", "Eve"]notes = [88, 72, 95, 81, 90]
print("=== Bulletin ===")for i in range(len(noms)): espaces = " " * (9 - len(noms[i])) print(format("{}{}: {}", noms[i], espaces, notes[i]))
meilleure = max(notes)position = notes.index(meilleure)print()print("Meilleure note :", noms[position], "avec", meilleure)Écris un programme qui affiche un histogramme horizontal à partir d’une liste de valeurs, en utilisant le caractère █.
donnees = [5, 12, 8, 3, 15, 7]etiquettes = ["Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"]Lun | █████Mar | ████████████Mer | ████████Jeu | ███Ven | ███████████████Sam | ███████donnees = [5, 12, 8, 3, 15, 7]etiquettes = ["Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"]
for i in range(len(donnees)): barre = "█" * donnees[i] print(etiquettes[i], "|", barre)Wordle est un jeu de devinette de mots.
ÉTAPE → ETAPE).Le mot secret est MARGE.
========= WORDLE =========
Tentative 1/6Entre un mot de 5 lettres : gamer GAMER → ❗[A]❗❗❗
Tentative 2/6Entre un mot de 5 lettres : table GAMER → ❗[A]❗❗❗ TABLE → ❌[A]❌❌[E]
Tentative 3/6Entre un mot de 5 lettres : marge GAMER → ❗[A]❗❗❗ TABLE → ❌[A]❌❌[E] MARGE → [M][A][R][G][E]
Bravo ! Trouvé en 3 tentatives !Détail de l’évaluation de GAMER :
| Position | 0 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|---|
| Secret | M | A | R | G | E |
| Essai | G | A | M | E | R |
| Résultat | ! | A | ! | ! | ! |
G est dans MARGE mais pas à la position 0 → !A est à la bonne position → AM est dans MARGE mais pas à la position 2 → !E est dans MARGE mais pas à la position 3 → !R est dans MARGE mais pas à la position 4 → !retirer_accents(mot)
Remplace les voyelles accentuées par leur version sans accent. Utilise deux listes parallèles (avec/sans accents) et .index().
saisir_mot()
Demande un mot, redemande tant qu’il n’a pas 5 lettres, retourne le mot en majuscules sans accents.
evaluer(secret, essai)
Compare chaque lettre de l’essai au secret. Retourne la chaîne d’indice (M, ! ou x pour chaque position).
jouer_partie() — Fonction principale
Choisit un mot au hasard, gère les 6 tentatives, affiche l’historique et le résultat.
import random
MOTS = [ "MARGE", "TABLE", "LIGNE", "POMME", "ROUTE", "BRISE", "CRANE", "DOUTE", "FERME", "GLACE", "HERBE", "JUSTE", "LAMPE", "NUAGE", "OLIVE", "PERLE", "RONDE", "SABLE", "TIGRE", "VITRE", "ABIME", "CARGO", "ETAPE", "FORET", "GUIDE"]