Sur cette page se trouvent des exercices supplémentaires pour vous entraîner. Ils sont classés par niveau de difficulté :
Remplissez un fichier texte (notes.txt
) avec les notes obtenues par des étudiants dans différentes Unités d'Enseignement (UE). Chaque ligne du fichier représente les notes d’un étudiant et chaque colonne les notes des différentes UE qu’il a suivies, séparées par des espaces.
Consignes :
Calculer les statistiques individuelles pour chaque Ă©tudiant :
Calculer les statistiques globales de la classe :
Afficher les résultats de manière structurée, en précisant :
Astuces :
Exemple d'un fichier notes.txt
:
12 8 14 10 11
9 11 10 12 13
8 7 6 10 11
10 11 12 13 14
12 13 14 15 16
Exemple de résultat attendu :
>> Statistiques par Ă©tudiant :
>> Étudiant 1 : Moyenne = 11.0, Note nécessaire = Néant (moyenne déjà atteinte), UE validées = 4
>> Étudiant 2 : Moyenne = 11.0, Note nécessaire = Néant (moyenne déjà atteinte), UE validées = 4
>> Étudiant 3 : Moyenne = 8.4, Note nécessaire = 18.0, UE validées = 2
>> Statistiques de la classe :
>> Moyenne générale de la classe : 10.13
>> Écart type des moyennes : 1.23
Dans cet exercice, vous allez développer une version avancée du jeu du pendu. Le programme sera divisé en plusieurs modules pour garantir une structure claire et organisée.
Objectifs :
Consignes :
Fichier principal (main.py
) :
Fichier de gestion des données (data.py
) :
Ce fichier contient les fonctions pour :
mots.txt
).scores.txt
).Fichier des fonctions du jeu (jeu.py
) :
Ce fichier contient les fonctions principales du jeu du pendu :
Fichier de gestion des scores (score.py
) :
Ce fichier contient les fonctions pour :
Règles du jeu :
scores.txt
.Organisation des fichiers :
main.py
: Gestion principale et menu interactif.data.py
: Gestion des fichiers (mots.txt et scores.txt).jeu.py
: Logique du jeu (affichage, vérification des lettres, etc.).score.py
: Gestion des scores et des statistiques.Exemple de résultat attendu :
>> === Jeu du Pendu ===
>> 1. Nouvelle Partie
>> 2. Afficher les Scores
>> 3. Quitter
>> Choix : 1
>> Entrez votre nom : Alice
>> Choisissez un niveau de difficulté :
>> 1. Facile
>> 2. Difficile
>> Choix : 1
>> Mot Ă deviner : _ _ _ _ _
>> Entrez une lettre : a
>> Mot Ă deviner : a _ _ _ _
>> Nombre de tentatives restantes : 9
# ... (Suite du jeu)
>> === Fin de la Partie === Alice, votre score est : 6
Objectifs :
Écrire un programme Python qui permet de :
Consignes :
Création des fichiers
data.txt
contenant une liste triée de nombres séparés par des virgules. Par exemple : 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31
data.txt
n'existe pas, votre programme devra le créer avec un contenu par défaut (par exemple, une liste triée de nombres entre 1 et 100).Lecture des données
charger_liste()
qui lit les nombres depuis le fichier data.txt
, les convertit en une liste d'entiers et les retourne.Recherche par interpolation
recherche_interpolation(liste, valeur)
: RĂ©alise une recherche par interpolation.recherche_dichotomique(liste, valeur)
: RĂ©alise une recherche dichotomique.-1
s'il n'existe pas).Saisie utilisateur
Comparaison des algorithmes
resultat.txt
:Exemple de cas démonstratif
1, 10, 100, 1000, 10000, 100000
Exemple de résultat attendu :
data.txt
:1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31
resultat.txt
après exécution :1, 10, 100, 1000, 10000, 100000
Implémentez un jeu interactif de Nim où deux joueurs (humains ou un humain contre l'ordinateur) s'affrontent. Pour cela, vous devrez implémenter plusieurs fonctionnalités :
scores.txt
. Ce fichier doit ĂŞtre mis Ă jour Ă chaque nouvelle partie.scores.txt
.Exemple de résultat attendu :
>> Bienvenue au jeu de Nim !
>> Choisissez le mode de jeu : 1 (Joueur vs Joueur) ou 2 (Joueur vs Ordinateur) : 2
>> Choisissez la difficulté : 1 (Simple) ou 2 (Optimale) : 1
>> État actuel des piles :
>> Pile 1: ||||| (5)
>> Pile 2: ||||||| (7)
>> Pile 3: ||| (3)
>> C'est au tour du joueur 1.
>> Choisissez une pile (1, 2 ou 3) : 2
>> Combien d'objets voulez-vous retirer de la pile 2 ? 1
>> État actuel des piles :
>> Pile 1: ||||| (5)
>> Pile 2: |||||| (6)
>> Pile 3: ||| (3)
>> C'est au tour du joueur 2.
>> L'ordinateur retire 1 objets de la pile 1.
>> État actuel des piles :
>> Pile 1: |||| (4)
>> Pile 2: |||||| (6)
>> Pile 3: ||| (3)
>> C'est au tour du joueur 1.
>> Choisissez une pile (1, 2 ou 3) :
Implémentez un programme qui permet de crypter et de décrypter des messages en utilisant différentes clés de chiffrement. Les messages cryptés et décryptés seront enregistrés dans des fichiers, et le programme proposera une gestion dynamique des clés utilisées. Le cryptage est un processus visant à rendre un message illisible afin de le protéger. Le décryptage permet de retrouver le message original grâce à une clé.
Dans cet exercice, vous utiliserez essentiellement le chiffrement par décalage ASCII, une méthode où chaque caractère est décalé d'un certain nombre de positions dans la table ASCII, déterminé par une clé. Par exemple, si la clé est 3
, le caractère A
devient D
, et Z
revient Ă C
grâce à un effet circulaire.
Votre programme doit permettre à l’utilisateur d’interagir avec les messages et les clés, et d’enregistrer les résultats dans des fichiers spécifiques. Vous devrez gérer les clés via un fichier cles.txt
, les messages cryptés dans message_crypte.txt
et les messages décryptés dans message_decrypte.txt
.
Le programme devra inclure les fonctionnalités suivantes :
cles.txt
:messages_a_crypter.txt
.message_crypte.txt
.message_crypte.txt
.message_decrypte.txt
.Exemple de résultat attendu :
>> === MENU PRINCIPAL ===
>> 1. Afficher les clés disponibles
>> 2. Ajouter une clé
>> 3. Supprimer une clé
>> 4. Crypter un message
>> 5. DĂ©crypter un message
>> 6. Afficher l'historique
>> 7. Quitter
>> Entrez votre choix : 2
>> Entrez une nouvelle clé (nombre entier) : 3
>> Clé 3 ajoutée.
>> === MENU PRINCIPAL ===
>> 1. Afficher les clés disponibles
>> 2. Ajouter une clé
>> 3. Supprimer une clé
>> 4. Crypter un message
>> 5. DĂ©crypter un message
>> 6. Afficher l'historique
>> 7. Quitter
>> Entrez votre choix : 4
>> Messages disponibles Ă crypter :
>> 1. Exemple de message Ă crypter 1
>> 2. Exemple de message Ă crypter 2
>> Entrez le numéro du message à crypter : 1
>> Clés disponibles :
>> 1. 3
>> 2. 5
>> 3. 3
>> Entrez le numéro de la clé à utiliser : 1
>> Choisissez le type de cryptage:
>> 1. Chiffrement par décalage ASCII
>> 2. Chiffrement par substitution
>> 3. Chiffrement par transposition
>> 4. Chiffrement XOR
>> 5. Chiffrement asymétrique
>> Entrez votre choix : 1
>> Message crypté enregistré dans message_crypte.txt.
>> === MENU PRINCIPAL ===
>> 1. Afficher les clés disponibles
>> 2. Ajouter une clé
>> 3. Supprimer une clé
>> 4. Crypter un message
>> 5. DĂ©crypter un message
>> 6. Afficher l'historique
>> 7. Quitter
>> Entrez votre choix : 5
>> Clés disponibles :
>> 1. 3
>> 2. 5
>> 3. 3
>> Entrez le numéro de la clé à utiliser : 1
>> Choisissez le type de décryptage:
>> 1. Chiffrement par décalage ASCII
>> 2. Chiffrement par substitution
>> 3. Chiffrement par transposition
>> 4. Chiffrement XOR
>> Entrez votre choix : 1
>> Message décrypté enregistré dans message_decrypte.txt.
>> === MENU PRINCIPAL ===
>> 1. Afficher les clés disponibles
>> 2. Ajouter une clé
>> 3. Supprimer une clé
>> 4. Crypter un message
>> 5. DĂ©crypter un message
>> 6. Afficher l'historique
>> 7. Quitter
>> Entrez votre choix : 7
>> Au revoir !