Exercice 1

Décrire ce que fait le programme Python ci-dessous :

print("Entrer une chaine de caracteres :")
ch = input()
i = 0
lgr = len(ch)
chNew = ""
while i < lgr:
    if (ch[i] == "," or ch[i] == ";" or ch[i] == "."):
        chNew = chNew + "p"
    else:
        chNew = chNew + ch[i]
    i += 1
print(chNew)

Lorsque l’utilisateur saisit au clavier :
En Python, la ponctuation ;, . est facile à manipuler.
Indiquer ce que va faire ce programme.

Écrire une nouvelle version beaucoup plus simple de ce programme Python en utilisant des méthodes de chaînes.


Exercice 2

Écrire une fonction Python, appelée palindrome(), qui prend une chaîne de caractères ch en argument et renvoie True si ch est un palindrome et, False sinon. Un palindrome est une chaîne de caractères dont l’ordre des lettres reste le même qu’on la lise de la gauche vers la droite ou de la droite vers la gauche. C’est par exemple le cas de la chaîne « kayak ».

On supposera que la chaîne de caractères lue ne contient que des caractères minuscules non accentués, et qu’elle ne contient ni espace, ni caractère de ponctuation. Écrire un programme Python qui lit une chaîne de caractères saisie par l’utilisateur, appelle la fonction palindrome pour afficher si oui ou non la chaîne saisie est un palindrome.


Exercice 3

Écrire un programme Python qui lit une chaîne de caractères ch et qui affiche la chaîne de caractères obtenue en ignorant les mots de longueur inférieure ou égale à 3 dans ch. Par exemple, si la chaîne lue est « bonjour les amies ! », l’algorithme affichera « bonjour amies ». On définira un mot comme toute suite de caractères quelconques ne contenant pas d’espace.


Exercice 4

Écrire en Python un programme qui lit une chaîne de caractères (supposée sans espace et de longueur au moins égale à 3) et l’affiche sous la forme d’un N. Si l’on saisit par exemple « abcde », alors le programme doit afficher :

a   a
bb  b
c c c
d  dd
e   e

Exercice 5

  1. Écrire un programme Python qui lit une chaîne de caractères s, affiche sa longueur, puis affiche s avec tous les espaces du début, intermédiaires et de la fin, supprimés.
  2. Écrire un nouveau programme Python qui permet, non pas simplement d’afficher s, mais de modifier s en enlevant tous les espaces du début, intermédiaires et de la fin.

Exercice 6

Écrire un programme Python qui lit une chaîne de caractères, puis lit une ou plusieurs valeurs entières (tant que l’utilisateur le souhaite) et qui, pour chacune de ces valeurs v, remplace le caractère situé à l’indice v par le caractère ’?’. Ce programme se termine par l’affichage de la nouvelle chaîne. Attention : il faut bien vérifier que les valeurs v correspondent à des indices valides pour la chaîne de caractères lue.


Exercice 7

Écrire un programme Python qui lit une chaîne de caractères et qui affiche cette chaîne avec les suites de caractères identiques remplacées par un seul caractère. Par exemple, on donnera la chaîne « abccdebbb » et votre programme devra afficher « abcdeb ».


Exercice 8

Écrire une fonction Python, appelée test(), qui prend 3 arguments : un entier n positif, et deux chaînes de caractères (ne contenant pas d’espace) ch1 et ch2. Cette fonction renvoie True si les deux conditions suivantes sont vérifiées : ch1 contient n fois ch2, et dans ch2 tout caractère est utilisé au plus une fois ; sinon la valeur booléenne False est renvoyée.

Écrire un programme Python qui lit un entier n positif, puis deux chaînes de caractères (ne contenant pas d’espace) ch1 et ch2, et appelle la fonction test() sur ces variables pour afficher « oui » si la valeur de retour de test() est True et « non » sinon. Le tableau ci-dessous donne des exemples de valeurs que le programme doit afficher.

ch1ch2nvaleur affichée
« hahbab »« ab »1oui
« hahbab »« ab »2non
« hahbab »« ab »3oui
« hahbab »« ab »4non
« baaabaa »« aa »2non
« baaabaa »« aa »3non
« abbaaab »« ab »3oui

Exercice 9

Écrire une fonction Python, appelée test2(), qui prend deux chaînes de caractères ch1 et ch2 en argument. Cette fonction renvoie un entier N tel que ch1 est égale à N concaténations successives de ch2 avec elle-même (ou 0 si ce n’est pas le cas).

Écrire un programme Python qui lit deux chaînes de caractères ch1 et ch2, et appelle la fonction test2() pour afficher N s’il existe; dans le cas contraire, le programme affichera « non ». On suppose que l’utilisateur saisira toujours des chaînes de caractères ch1 et ch2 non vides ne contenant pas d’espace. Le tableau ci-dessous donne des exemples de valeurs que le programme doit afficher.

ch1ch2valeur affichée
« ababab »« ab »3
« ab »« ab »1
« ahbab »« ab »non
« aaaa »« aa »2
« aaa »« aa »non
« aaa »« a »3

Exercice 10

Écrire un programme Python qui lit une chaîne de caractères et l’affiche sous la forme d’un X.

Si l’on saisit par exemple « abcde », alors il doit afficher :

a   e
 b c
  d
 b c
a   e

Si l’on saisit par exemple « abcd », alors il doit afficher :

a  d
 b c
 b c
a  d

Tester votre programme, entre autres avec les chaînes de caractères « MAGIQUE » et « PYTHON », et avec la chaîne obtenue en concaténant ces deux précédentes.


Exercice 11

Écrire un programme Python qui prend en entrée deux chaînes de caractères s1 et s2 (supposées sans espace), et affiche « OK » s’il est possible, en enlevant certains caractères de s2, de retrouver s1. Dans le cas contraire, le programme affiche « impossible ».

  • Par exemple, si s1 = 'bd' et s2 = 'abcde', le programme affiche « OK ».
  • Avec s1 = 'bd' et s2 = 'bd', le programme affiche également « OK ».
  • Par contre, il affiche « impossible » lorsque s1 = 'db' et s2 = 'abcde'.

Exercice 12

Il paraît que pour la lecture, l’ordre des lettres à l’intérieur des mots n’a aucune importance. La seule chose qui compte est que la première et la dernière lettre soient à leur place.

L’objectif de cet exercice est de concevoir un programme en Python permettant de tester cette théorie. Étant donnée une chaîne de caractères saisie par l’utilisateur, il mélangera aléatoirement les lettres à l’intérieur des mots et affichera la phrase modifiée. On supposera que la chaîne de caractères ne comporte pas de signe de ponctuation et que deux mots sont séparés par exactement un espace.

Attention : L’utilisation du type list est interdite dans cet exercice.

  1. Écrire une fonction permuteMot() qui prend en argument un mot et permute aléatoirement les lettres à l’intérieur du mot en gardant les première et dernière lettres inchangées.
  2. Écrire une fonction permute() qui prend en argument une phrase et applique la première fonction sur chacun des mots.
  3. Écrire le programme demandé en utilisant les fonctions précédentes.

Exemple : Si l’utilisateur saisit la phrase « Je vais avoir une bonne note », le programme peut afficher « Je v’ias av’oir un’e bnnoe ntoe ».


Exercice 13

Écrire un programme Python qui lit une chaîne de caractères ch et qui affiche la liste des mots de ch ainsi que les indices de début de chacun des mots dans ch (chaque mot pouvant se répéter plusieurs fois).

Par exemple, pour ch = " ab cda fg ab fg cda h cda ", le programme doit afficher :

"ab" 1, 11
"cda" 4, 19, 25
"fg" 8, 16
"h" 23

Attention, plusieurs espaces peuvent se trouver entre deux mots consécutifs, ainsi qu’avant le premier mot et après le dernier mot.

Laisser un commentaire

Retour en haut