Exercices Python Intermédiaires
Exercices Python Intermédiaires
j'aimerais que tu me donne 5 robustres exercices niveau intermediaire en python qui m'aidera
a avoir et obtenu des new skills utile et grisant en python
Objectif : Apprendre les bases du réseau avec Python en construisant un serveur HTTP capable de
répondre à des requêtes GET.
Crée un serveur qui écoute sur un port spécifique.
Lorsqu'une requête est reçue, retourne une réponse HTTP simple (par exemple, une page
HTML ou un JSON).
Bonus : Ajoute des réponses conditionnelles en fonction de l'URL demandée.
Compétence clé : Programmation réseau avec `socket`, compréhension des requêtes/réponses
HTTP.
Objectif : Extraire des données d'un site web public (comme des titres d'articles ou des prix de
produits).
Télécharge la page web et analyse son contenu HTML.
Identifie et extrait des données spécifiques (par exemple, le titre de tous les articles).
Sauvegarde les données dans un fichier JSON ou CSV.
Bonus : Implémente une fonction pour détecter et suivre les erreurs d'extraction.
Compétence clé : Web scraping, manipulation des données.
Objectif : Utiliser le multithreading pour simuler une base de données simple en mémoire.
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 1/8
Crée un programme qui permet :
D'insérer, supprimer et lire des données dans une structure comme un dictionnaire ou
une liste.
De gérer plusieurs threads effectuant des opérations simultanées.
Implémente des verrous (`threading.Lock`) pour éviter les conditions de course.
Compétence clé : Programmation multithreadée, gestion des accès concurrents.
Si tu travailles sur ces exercices et as des questions ou des blocages, je suis là pour t'aider ! 😊
Merci pour ton retour ! Pour m'assurer de te proposer exactement ce que tu veux, pourrais-tu
préciser :
1. Quel est ton objectif principal ? Par exemple, apprendre des concepts spécifiques comme
l'asynchronisme, l'optimisation de performances, ou encore la manipulation de données
avancée.
2. Quel type de projet ou exercice te motive ? Plutôt des défis algorithmiques, des projets
pratiques, ou des problèmes complexes ?
3. Un domaine particulier ? (Ex. : sécurité, web, automatisation, intelligence artificielle, etc.)
Avec ces détails, je pourrais ajuster et te proposer des exercices qui correspondent parfaitement à
tes attentes.😊
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 2/8
L'objectif est de trouver le chemin le plus court qui passe par toutes les villes une seule fois et
revient à la ville de départ.
Bonus : Implémente une heuristique (comme la méthode de recherche locale) pour obtenir
une solution approximative.
Compétence clé : Algorithmes de graphes, programmation dynamique, recherche de solutions
optimisées.
Objectif : Générer toutes les permutations ou combinaisons possibles d’un ensemble donné.
Implémente une fonction qui génère toutes les permutations possibles d'une liste ou d'un
ensemble de n éléments.
En utilisant ces permutations, résous un problème comme "trouver un sous-ensemble qui a la
somme la plus proche d'une valeur cible".
Bonus : Implémente un générateur d'itérations paresseuses avec `yield` pour des
ensembles très grands.
Compétence clé : Algorithmes de combinaison et permutation, optimisation mémoire avec
`yield`.
Objectif : Résoudre le problème classique des N-reines, où il faut placer N reines sur un échiquier
de taille N x N de manière à ce qu'aucune reine ne soit en position d'attaque.
Implémente une fonction récursive pour placer les reines et vérifier les contraintes (les reines
ne peuvent pas se partager une ligne, une colonne ou une diagonale).
Bonus : Affiche toutes les solutions possibles pour un N donné.
Compétence clé : Récursion, algorithmes de backtracking.
Objectif : Implémenter l'algorithme de Kadane pour résoudre le problème du plus grand sous-
tableau dont la somme est maximale.
Donne un tableau d'entiers, trouve le sous-tableau contigu dont la somme est la plus élevée.
Bonus : Améliore cet algorithme en lui donnant une complexité de temps O(n).
Compétence clé : Algorithmes de recherche de sous-tableaux, optimisation de complexité.
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 3/8
Ces défis couvrent des aspects cruciaux de l'algorithmie et de la logique, et te permettront de
travailler sur des problèmes complexes tout en perfectionnant ta maîtrise de Python. Si tu
souhaites de l'aide pour l'un de ces exercices, n'hésite pas à demander ! 😊
Merci pour la précision ! Voici des défis qui allient raisonnement logique et manipulation des types
de données en Python :
Objectif : Vérifier si deux chaînes de caractères sont des anagrammes l'une de l'autre (c'est-à-dire
qu'elles contiennent les mêmes lettres, mais dans un ordre différent).
Implémente une fonction qui prend en entrée deux chaînes et renvoie `True` si elles sont des
anagrammes, et `False` sinon.
Astuce : Utilise des structures de données comme des dictionnaires ou des `Counter` de la
bibliothèque `collections`.
Compétence clé : Manipulation de chaînes de caractères, dictionnaires, `collections.Counter`.
Objectif : Trouver les éléments qui apparaissent exactement une fois dans une liste.
Donne une liste d'entiers. Implémente une fonction qui renvoie une nouvelle liste ne
contenant que les éléments uniques (ceux qui apparaissent une seule fois).
Astuce : Utilise des structures de données comme des `set` ou des `dict` pour compter les
occurrences.
Compétence clé : Utilisation des `set` et des dictionnaires pour manipuler des listes.
3. Permutation circulaire
Objectif : Vérifier si une chaîne est une permutation circulaire d'une autre chaîne.
Une permutation circulaire d'une chaîne est une chaîne où les caractères ont été déplacés
d'un certain nombre de positions. Par exemple, "abc" est une permutation circulaire de "bca".
Implémente une fonction qui vérifie si une chaîne est une permutation circulaire d'une autre.
Astuce : Utilise la concaténation de la chaîne pour simplifier le problème (par exemple, "abc"
+ "abc" contient toutes les permutations circulaires de "abc").
Compétence clé : Manipulation de chaînes de caractères et raisonnement logique.
Objectif : Vérifier si les parenthèses dans une expression sont correctement équilibrées.
Donne une chaîne contenant des parenthèses `()`, des crochets `[]` et des accolades `{}`.
Implémente une fonction qui vérifie si chaque parenthèse a une paire correspondante et que
l'ordre est correct.
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 4/8
Astuce : Utilise une pile (`list`) pour pousser les symboles ouvrants et les retirer lorsqu'un
symbole fermant correspondant est rencontré.
Compétence clé : Utilisation de piles (LIFO), gestion des parenthèses.
Objectif : Trouver le nombre d'occurrences exactes d'un sous-ensemble dans une liste.
Par exemple, si tu as une liste `[1, 2, 3, 1, 2, 3, 1, 2]` et que tu veux savoir combien de
fois la sous-liste `[1, 2]` apparaît, ton programme devrait renvoyer `3`.
Astuce : Utilise une approche avec des tranches de listes pour parcourir toutes les sous-listes
possibles.
Compétence clé : Manipulation de sous-listes et de tranches en Python.
Objectif : Implémenter une fonction qui compresse une chaîne de caractères en comptant les
répétitions de chaque caractère consécutif.
Par exemple, pour la chaîne `"aaabbbcc"`, la sortie doit être `"a3b3c2"`.
Astuce : Utilise une boucle pour parcourir la chaîne et compter les caractères consécutifs.
Compétence clé : Manipulation de chaînes de caractères, comptage d'occurrences.
Ces défis vont tester ton raisonnement logique tout en te permettant de manipuler des types de
données tels que les listes, les dictionnaires, les chaînes de caractères, et les ensembles. Ils sont
parfaits pour améliorer ta compréhension de la structure des données et de leur manipulation en
Python !
20 autres encores
Objectif : Trouver le plus petit nombre entier positif qui manque dans une liste.
Par exemple, pour la liste `[3, 4, -1, 1]`, le résultat devrait être `2`.
Astuce : Trie la liste ou utilise un ensemble pour optimiser la recherche.
Objectif : Calculer la somme des éléments d'une liste sans utiliser la fonction `sum()`.
Implémente une fonction qui additionne les éléments d'une liste en utilisant une boucle.
Objectif : Trouver combien de paires dans une liste s'additionnent à une valeur cible donnée.
Par exemple, pour la liste `[1, 2, 3, 4, 3]` et une cible `6`, il y a 2 paires (`(2, 4)` et `(3,
3)`).
Astuce : Utilise un dictionnaire pour stocker les éléments déjà vus.
Objectif : Inverser une chaîne de caractères sans utiliser la méthode intégrée `[::-1]`.
Implémente une fonction qui retourne la chaîne inversée en utilisant une boucle.
Objectif : Trouver tous les éléments qui apparaissent plus d'une fois dans une liste.
Implémente une fonction qui retourne une liste des éléments en doublon.
Astuce : Utilise un dictionnaire ou un `set` pour identifier les doublons.
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 6/8
Astuce : Utilise l'opérateur `**` ou la méthode `update()`.
Objectif : Calculer la moyenne des nombres dans une liste sans utiliser de fonctions intégrées.
Implémente une fonction qui calcule la moyenne manuellement.
Objectif : Supprimer tous les doublons d'une liste sans conserver l'ordre des éléments.
Implémente une fonction qui retourne une liste sans doublons.
Astuce : Utilise un ensemble pour éliminer les doublons.
Objectif : Trouver les éléments communs entre deux listes sans utiliser de structures de données
comme `set`.
Implémente une fonction qui recherche les éléments communs à l'aide de boucles.
Ces défis couvrent une large gamme de concepts allant de la manipulation de listes et de
dictionnaires à la gestion de chaînes et d'ensembles, en passant par des algorithmes classiques de
raisonnement logique. Chaque problème t'aidera à maîtriser des techniques utiles pour
l'optimisation, l'analyse et la gestion des données en Python !
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 8/8