Exercices sur les chaines de caractères
Exercice 1 — Inverser une chaîne
Écris un programme qui demande une phrase à l’utilisateur et l’affiche à l’envers.
Exemple : "Bonjour" → "ruojnoB"
Exercice 2 — Vérifier si un mot est un palindrome
Écris un programme qui vérifie si un mot saisi par l’utilisateur se lit pareil dans les deux sens.
Exemple : "kayak" → "C'est un palindrome" / "chat" → "Ce n'est pas un palindrome"
Exercice 3 — Censurer un mot dans une phrase
Écris un programme qui demande une phrase et un mot à censurer, puis remplace chaque lettre de ce mot par une étoile
*.
Exemple : phrase "le chat mange la souris", mot "chat" → "le **** mange la souris"
Exercice 4 — Compter les mots d’une phrase
Écris un programme qui demande une phrase et affiche le nombre de mots qu’elle contient, ainsi que le mot le plus long.
Exemple : "Le petit chat est content" → 5 mots, mot le plus long : content
Exercice 5 — Encoder une phrase en ROT13
Écris un programme qui encode une phrase en décalant chaque lettre de 13 positions dans l’alphabet (a→n, b→o, etc.). Les espaces et la ponctuation ne changent pas.
Exemple : "Bonjour" → "Obawbhe"
INDICE pour l’exercice 5 :
- fonction modulo %
- fonction index sur chaine de caractère
TRAVAIL SUR LES STRUCTURES DE DONNES (tableaux, appelé liste en python)
Exercice 1 : Gestion de l’inventaire
Tu travailles pour un primeur. Il a une liste de fruits en stock : ["Pomme", "Banane", "Orange"].
- Affiche le deuxième fruit de la liste.
- Le stock de bananes est épuisé, remplace « Banane » par « Fraise« .
- Le primeur reçoit une livraison : ajoute « Kiwi » à la fin de la liste.
- Affiche la phrase : « Le magasin possède X types de fruits », où X est la taille de la liste.
Exercice 2 : Coordonnées GPS
On représente une carte simplifiée par une liste de listes (un tableau 2D). Chaque sous-liste est une ligne de la carte : carte = [[10, 20, 30], [40, 50, 60]]
- Quelle commande permet d’afficher spécifiquement le nombre 50 ?
- Utilise une boucle
forpour afficher chaque ligne de la carte l’une après l’autre.
Exercice 3 : Le Calculateur de Notes
Voici tes notes du trimestre : [12, 15, 8, 19, 11].
- Crée une variable
sommequi commence à 0. - Utilise une boucle
forpour parcourir tes notes et les ajouter àsomme. - Calcule et affiche la moyenne (somme divisée par le nombre de notes).
- Défi : Affiche uniquement les notes qui sont strictement supérieures à 10.
Exercice 4 : Station Météo
On a relevé les températures sur 3 jours (matin, midi, soir) : releves = [[12, 15, 14], [10, 11, 12], [18, 20, 19]]
- À l’aide de boucles imbriquées (une boucle dans une boucle), affiche toutes les températures les unes après les autres.
- Trouve et affiche la température maximale enregistrée sur toute la période.
Exercice 5 : Le Créateur de Grille (Expert)
- Crée un script qui génère automatiquement un tableau de 3×3 rempli de chiffres
0. - Modifie ton code pour que les chiffres sur la diagonale (en haut à gauche jusqu’en bas à droite) soient des
1. Indice : Sur la diagonale, l’indice de la ligne est égal à l’indice de la colonne.
EXERCICE 6 :
Nouvel Énoncé : Le Calculateur Dynamique
Objectif : Créer un programme interactif qui calcule la moyenne d’une classe, peu importe le nombre d’élèves.
Consignes :
- Demande à l’utilisateur de saisir une note.
- Si l’utilisateur saisit un nombre négatif (par exemple
-1), le programme s’arrête. - Chaque note valide doit être ajoutée à une liste nommée
tableau_notes. - Une fois la saisie terminée :
- Affiche le nombre total de notes saisies.
- Calcule et affiche la moyenne de la liste.
- Affiche la note la plus haute et la plus basse (Indice : utilise
max()etmin()).
Exercice 7 :
Énoncé : Le Registre de Classe Interactif
Objectif : Créer un répertoire complet de la classe et calculer les statistiques finales.
Le programme permet d’ajouter des éléves et d’ajouter leurs notes respectives
Consignes :
- Crée une liste vide nommée
registre. - Utilise une boucle pour demander à l’utilisateur :
- Le nom de l’élève (si l’utilisateur tape « fin », on arrête la saisie).
- La note de cet élève.
- Chaque élève doit être enregistré dans le registre sous forme de liste :
[nom, note]. - À la fin de la saisie :
- Affiche la liste complète des élèves et leurs notes respectives.
- Calcule la moyenne de la classe.
- Défi : Affiche le nom de l’élève qui a eu la meilleure note.
🗺️ Projet : Générateur de Mondes Virtuels (Procedural Map)
Contexte
L’objectif est de créer un programme capable de générer des cartes de jeux vidéo de manière aléatoire mais cohérente (créer des continents, pas juste des points au hasard). Nous allons utiliser la technique du lissage par voisinage.
Phase 1 : La structure de base
- Variables de configuration : Définis une taille de grille (ex:
TAILLE = 20). - Génération : Crée une liste de listes contenant des nombres entiers aléatoires entre 0 et 9.
- Affichage simple : Parcours la grille avec deux boucles
forpour afficher un symbole selon la valeur (ex:~si < 5,#sinon).
Phase 2 : L’algorithme de lissage
Le but est d’éviter l’aspect « neige de télévision ».
- Crée une deuxième grille vide.
- Pour chaque case de la première grille, calcule la moyenne de sa valeur avec celle de ses voisins (Haut, Bas, Gauche, Droite).
- Attention : Vérifie bien que tu ne sors pas de la grille avec des
ifavant d’accéder à un voisin !
- Attention : Vérifie bien que tu ne sors pas de la grille avec des
- Stocke cette moyenne dans la deuxième grille.
- Remplace la grille principale par cette nouvelle grille lissée.
Phase 3 : L’évolution (Itérations)
- Englobe tout ton code de lissage dans une boucle pour pouvoir lisser la carte plusieurs fois (ex: 5 ou 10 fois).
- Observe comment les « taches » de terrain s’agrandissent à chaque passage.
Phase 4 : Rendu visuel « Premium »
- Couleurs ou Emojis : Remplace l’affichage simple par un affichage utilisant soit des codes couleurs ANSI, soit des emojis (🟦, 🏖️, 🌲, 🏔️).
- Seuils de terrain : Ajuste tes conditions
if/elifpour définir où commence l’eau, le sable, la forêt et la montagne.
💡 Défis Bonus pour les experts :
- Le niveau de la mer : Ajoute une variable
NIVEAU_MER. Si l’utilisateur l’augmente, plus de cases deviennent de l’eau. - L’Explorateur : Place un personnage
Pau milieu de la carte. - Exportation : Arriverais-tu à sauvegarder le résultat final dans un fichier texte nommé
carte.txt?
Consignes techniques :
- Utilise uniquement la bibliothèque
random. - Ton code doit être commenté pour expliquer chaque étape.
- Fais attention à l’ordre des variables pour éviter les erreurs
NameError.
