0% ont trouvé ce document utile (0 vote)
6 vues4 pages

TP3 Python

Ce document présente une série d'exercices de programmation en Python, axés sur la manipulation des chaînes de caractères et des listes. Les exercices incluent la création de fonctions pour tester les palindromes, calculer la distance de Hamming, vérifier les anagrammes, et manipuler des listes de manière variée. L'objectif est de renforcer les compétences en programmation à travers des tâches pratiques et des défis.

Transféré par

Ami ra
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
6 vues4 pages

TP3 Python

Ce document présente une série d'exercices de programmation en Python, axés sur la manipulation des chaînes de caractères et des listes. Les exercices incluent la création de fonctions pour tester les palindromes, calculer la distance de Hamming, vérifier les anagrammes, et manipuler des listes de manière variée. L'objectif est de renforcer les compétences en programmation à travers des tâches pratiques et des défis.

Transféré par

Ami ra
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

2024-2025

PROGRAMMATION PYTHON
TD/TP 3 TIC-01

Objectifs:

 Manipuler les chaînes de caractères


 Manipuler les listes
 Définir et utiliser des fonctions

Les chaînes de caractères

Exercice N°1 : (Palindrome)

Ecrivez une fonction palindrome qui teste si le mot passé en entrée est un palindrome (le mot
est égal à son miroir). La fonction renvoie un booléen

Exercice 2 : (Recherche de caractère,)


1. Écrivez une fonction cherche qui prend en argument un caractère c et une chaîne de
caractères s et qui renvoie true si c apparaît dans s, et false sinon.
Par exemple, cherche (’a’, "cheval") renvoie True et cherche (’a’, "école") renvoie
False.

2. Modifiez la fonction cherche afin qu’elle renvoie au lieu de true la première occurrence
du caractère c dans la chaîne s et si le caractère n’est pas présent la fonction renvoie -1

Exercice N°3 : (Distance de Hamming)

La distance de Hamming entre deux mots est une notion utilisée dans de nombreux domaines
(télécommunications, traitement du signal, .). Elle est définie, pour deux mots de même
longueur, comme le nombre de positions où les deux mots ont un caractère différent.
Écrivez une fonction hamming qui calcule la distance de Hamming entre deux mots lorsqu’ils
ont la même longueur, et qui renvoie -1 sinon.

Par exemple, hamming("aaba", "aaha") renvoie 1,


hamming("poire", "pomme") renvoie 2 et
hamming("stylo", "bouteille") renvoie -1.

1
2024-2025

Exercice N°4 :

Écrivez une fonction scrabble qui prend en argument deux chaînes de caractères mot et
lettres_disponibles et qui renvoie True si on peut écrire mot en utilisant au plus une fois chaque
lettre de la chaîne lettres_disponibles et qui renvoie False sinon.

Par exemple, scrabble("maison", "auiysmzanpo") renvoie True et


scrabble("bungalows", "hbteslo") renvoie False.

Exercice N°5 :

Deux mots sont des anagrammes si on peut obtenir l’un à partir de l’autre en permutant les
lettres. Écrire une fonction anagramme qui prend en argument deux chaînes u et v et qui renvoie
True si u et v sont des anagrammes et qui renvoie False sinon.
Par exemple, anagramme("parisien", "aspirine") renvoie True et
anagramme("chaise", "disque") renvoie False.

Exercice N°6 :

Un problème fréquent d’un compilateur et des traitements de textes est de déterminer si les
parenthèses d’une chaîne de caractères sont balancées et proprement incluses l’une dans
l’autre. Par exemple :
Ecrivez une fonction qui retourne True si une chaîne de caractères est proprement écrite et
bien balancée, et False sinon.

Les listes unidimensionnelles

Exercice N°7 :

Créez puis affichez les listes suivantes :

 L1 : liste croissante des entiers naturels pairs strictement inférieurs à 20


 L2 : coupe (slicing) du 3ème au 6ème élément inclus de la liste L1 précédente
 L3 : liste L1 sans les premier et dernier éléments
 L4 : liste décroissante des entiers naturels impairs strictement inférieurs à 10
 L5 : liste décroissante des racines carrées des entiers naturels impairs inférieurs à 10.

2
2024-2025

Exercice N°8 : (Manipulation simple des listes)

Le but de cet exercice est de déterminer si étant donnée une liste de nombres entiers positifs
tous différents, un nombre donné peut s’écrire comme somme de deux d’entre eux.

1. Écrivez une fonction tousDifferents qui étant donnée une liste d’entiers renvoie True si
tous les éléments de la liste sont différents et False si la liste contient au moins deux
éléments identiques.

2. Écrivez une fonction sommeN qui étant donné un entier n supposé positif renvoie la
somme des entiers de 0 à n.

3. Écrivez une fonction sousListe qui prend comme arguments une liste Li et une position p
comprise entre 0 et len (Li)−1 et renvoie la liste des éléments situés strictement après p
dans Li.
Exemple : Pour la liste [12,3,2,8] et la position 0, la fonction sousListe renverra la
liste [3,2,8] , pour la position 2, elle renverra la liste [8] et pour la position 3, elle
renverra la liste de taille 0 [] .

4. Écrivez une fonction toutesLesPaires qui étant donnée une liste d’entiers Li renvoie la
liste vide (de taille 0) si tous les éléments de Li ne sont pas tous différents et sinon renvoie
une liste de listes d’entiers correspondant à toutes les paires d’entiers de Li .

Exemple : Pour la liste [12,3,2,8] , la fonction renverra la liste de listes


[[12,3],[12,2],[12,8],[3,2],[3,8],[2,8]] .

5. Écrivez une fonction sommePaire qui étant donnés une liste d’entiers Li et un entier x
renvoie :

 La liste vide (de taille 0) si les éléments de Li ne sont pas tous différents.
 La liste vide (de taille 0) si il n’existe pas deux entiers a et b dans Li tels que
x=a+b.
 Et dans les autres cas, une liste de deux éléments a et b tels que a et b sont
dans Li et vérifient x=a+b.

Exemple : Pour la liste [12,3,2,8] et l’entier 14, la fonction sommePaire renverra la


liste [12,2] .

Remarque : Il peut y avoir plusieurs paires d’entiers a et b qui correspondent, la


fonction en renverra alors une.

Exercice N°9 : (Ordre de lettres)

Il pîaart que puor la lctreue, l’orrde des lrttees à l’iétunreir des mots n’a acnuue itnpocmare.
La sulee chose qui cptmoe est que la pemièrre et la dne`eirre lttree seonit à leur pclae.

3
2024-2025

Ecrivez un programme permettant de tester cette théorie. Il devra prendre en entrée une
chaîne de caractères et mélanger aléatoirement les lettres à l’intérieur des mots. On
supposera que la chaîne de caractères ne comporte pas de signe de ponctuation.

On écrira d’abord une fonction Permute_Mot qui prend en entrée un mot et permute les
lettres à l’intérieur du mot en gardant les première et dernière lettres inchangées, puis une
deuxième fonction Permute_phrase qui prend en entrée une phrase, et applique la première
fonction sur chacun des mots, puis renvoie la phrase contenant les mots permutés.

Exemples :
permute("Je vais avoir une bonne note") peut renvoyer ’Je vias avior une bnone ntoe’.

Indications : lesmots=[Link](" ") renvoie la liste des mots de la phrase. On utilisera


aussi le module random qui contient la fonction [Link](a,b) qui renvoie un nombre
aléatoire compris dans l’intervalle [a, b].

Les listes de listes

Exercice N°10 :
Etant donnée une liste 2D de points et un entier K. Il est demandé de trouver et d’afficher les
k points les plus proches de l’origine (0,0). Notez que la distance entre deux points est la
distance euclidienne.

Exemples :

Input : point = [(3, 3), (5, -1), (-2, 4)], K = 2


Output : [(3, 3), (-2, 4)]

Input : point = [[1, 3], [-2, 2]], K = 1


Output : [[-2, 2]]

Exercice N°11 :

Python admet des listes hétérogènes, de profondeur quelconque, par


exemple : [’a’, [], 8, [2.1, ["xx",1]], [[[None]]]].

Écrivez une fonction qui aplatit une telle liste, en construisant une nouvelle à un seul niveau,
avec les mêmes éléments qui ne sont pas des listes, dans le même ordre.

Ici : [’a’, 8, 2.1, "xx", 1, None]. Notez que les listes vides sont éliminées (les listes genre [[]]
également).

Vous aimerez peut-être aussi