Exercices d'entraînement☘
Ces exercices doivent être utilisés pour vous entraîner à programmer. Ils sont généralement accompagnés de pistes et de leur solution pour vous permettre de progresser.
Avant de vous précipiter sur ces solutions dès la première difficulté, n'oubliez pas les conseils suivants :
- Avez-vous bien fait un schéma au brouillon pour visualiser le problème posé ?
- Avez-vous essayé de rédiger un algorithme en français, avec vos propres mots, avant de vous lancer dans la programmation sur machine ?
- Avez-vous utilisé des affichages intermédiaires, des
print()
, pour visualiser au fur et à mesure le contenu des variables ? - Avez-vous testé le programme avec les propositions de tests données dans l'exercice ?
- Avez-vous testé le programme avec de nouveaux tests, différents de ceux proposés ?
Rappels
- Chaque programme Python doit être sauvegardé sous forme de fichier texte
avec l'extension
.py
.
Enregistrez ce fichier dans le dossier[F02-Chaines]
avec le nom donné à l'exercice :ProgF02.61.py
,ProgF02.62.py
, etc... - Pour exécuter ce programme, il suffit de le sauvegarder puis d'appuyer
sur la touche
[F5]
.
ProgF02.61 - Nombre d'occurrences☘
-
Complétez le corps de la fonction
occurrences_e()
en respectant ses spécifications.1 2 3 4 5
def occurrences_e(chaine): """ chaine – str (chaîne de caractères) Sortie: int – nombre de caractères « e » dans chaine """
Exemple de test
>>> occurrences_e("Ceci est un exemple.") 5 >>> occurrences_e("Voila") 0
Une solution
def occurrences_e(chaine): """ chaine – str (chaîne de caractères) Sortie: int – nombre de caractères « e » dans chaine """ nb_occurences = 0 for carac in chaine: if carac == 'e': nb_occurences += 1 return nb_occurences
-
Généralisez la fonction précédente en complétant le corps de la fonction
occurrences()
qui prend en paramètres un caractère et une chaîne de caractères. Cette fonction renvoie le nombre d'occurrences de ce caractère dans la chaîne.1 2 3 4 5 6
def occurrences(lettre, chaine): """ lettre – str, un seul caractère chaine – str (chaîne de caractères) Sortie: int – nombre de caractères lettre dans chaine """
Exemple de test
>>> occurrences('e', "Ceci est un exemple.") 5 >>> occurrences('t', "Ceci est un exemple.") 1
Une solution
def occurrences(lettre, chaine): """ lettre – str, un seul caractère chaine – str (chaîne de caractères) Sortie: int – nombre de caractères lettre dans chaine """ nb_occurences = 0 for carac in chaine: if carac == lettre: nb_occurences += 1 return nb_occurences
ProgF02.62 - Caractères impairs☘
Complétez le corps de la fonction imparite()
en respectant ses spécifications.
1 2 3 4 5 |
|
Exemple de test
>>> imparite("Ceci est un exemple.")
'eietu xml.'
Une solution
def imparite(chaine):
"""
chaine – str (chaîne de caractères)
Sortie: str – la chaine n'ayant conservé que les caractères d'indice impair.
"""
resultat = ''
for i in range(1, len(chaine), 2):
resultat += chaine[i]
return resultat
ProgF02.63 - Premier et dernier☘
-
Complétez le corps de la fonction
couper()
en respectant ses spécifications.1 2 3 4 5 6
def couper(chaine): """ chaine – str (chaîne de caractères) Sortie: str – la chaine dans laquelle le premier et le dernier caractère ont été enlevés. """
Exemple de test
>>> couper("Ceci est un exemple.") 'eci est un exemple'
Une solution
def couper(chaine): """ chaine – str (chaîne de caractères) Sortie: str – la chaine dans laquelle le premier et le dernier caractère ont été enlevés. """ resultat = '' for i in range(1, len(chaine)-1): resultat = resultat + chaine[i] return resultat
-
Complétez le corps de la fonction
echange()
en respectant ses spécifications.1 2 3 4 5
def echange(chaine): """ chaine – str (chaîne de caractères) Sortie: str – la chaine dans laquelle le premier et le dernier caractère ont échangé de place. """
Exemple de test
>>> echange("Ceci est un exemple.") '.eci est un exempleC'
Une solution
def echange(chaine): """ chaine – str (chaîne de caractères) Sortie: str – la chaine dans laquelle le premier et le dernier caractère ont échangé de place. """ premier = chaine[0] dernier = chaine[len(chaine)-1] resultat = dernier for i in range(1, len(chaine)-1): resultat = resultat + chaine[i] resultat = resultat + premier return resultat
ProgF02.64 - Positions☘
-
Complétez le corps de la fonction
rang_premier()
qui prend en paramètres un caractère et une chaîne de caractères. Cette fonction renvoie le premier indice auquel on trouve ce caractère dans la chaîne. Elle renvoie -1 s'il n'est pas présent dans la chaîne.1 2 3 4 5 6 7
def rang_premier(lettre, chaine): """ lettre – str, un seul caractère chaine – str (chaîne de caractères) Sortie: int – premier indice auquel on trouve lettre dans chaine. Renvoie -1 si lettre n'est pas dans chaine. """
Exemple de test
>>> rang_premier('e', "Ceci est un exemple.") 1 >>> rang_premier('a', "Ceci est un exemple.") -1
Une solution
def rang_premier(lettre, chaine): """ lettre – str, un seul caractère chaine – str (chaîne de caractères) Sortie: int – premier indice auquel on trouve lettre dans chaine. Renvoie -1 si lettre n'est pas dans chaine. """ for i in range(len(chaine)): if chaine[i] == lettre: return i return -1
-
Complétez le corps de la fonction
rang_dernier()
qui prend en paramètres un caractère et une chaîne de caractères. Cette fonction renvoie le dernier indice auquel on trouve ce caractère dans la chaîne. Elle renvoie -1 s'il n'est pas présent dans la chaîne.1 2 3 4 5 6 7
def rang_dernier(lettre, chaine): """ lettre – str, un seul caractère chaine – str (chaîne de caractères) Sortie: int – dernier indice auquel on trouve lettre dans chaine. Renvoie -1 si lettre n'est pas dans chaine. """
Exemple de test
>>> rang_dernier('e', "Ceci est un exemple.") 18 >>> rang_dernier('c', "Ceci est un exemple.") 2 >>> rang_dernier('a', "Ceci est un exemple.") -1
Une solution
def rang_dernier(lettre, chaine): """ lettre – str, un seul caractère chaine – str (chaîne de caractères) Sortie: int – dernier indice auquel on trouve lettre dans chaine. Renvoie -1 si lettre n'est pas dans chaine. """ dernier_indice = -1 for i in range(len(chaine)): if chaine[i] == lettre: dernier_indice = i return dernier_indice
-
Complétez le corps de la fonction
rang_deuxieme()
qui prend en paramètres un caractère et une chaîne de caractères. Cette fonction renvoie le deuxième indice auquel on trouve ce caractère dans la chaîne. Elle renvoie -1 s'il n'est pas présent dans la chaîne ou bien s'il n'est présent qu'une fois.1 2 3 4 5 6 7
def rang_deuxieme(lettre, chaine): """ lettre – str, un seul caractère chaine – str (chaîne de caractères) Sortie: int – deuxième indice auquel on trouve lettre dans chaine. Renvoie -1 si lettre n'est pas dans chaine ou bien si elle n'est présente qu'une seule fois. """
Exemple de test
>>> rang_deuxieme('e', "Ceci est un exemple.") 5 >>> rang_deuxieme('c', "Ceci est un exemple.") -1 >>> rang_deuxieme('c', "coucou") 3
Une solution
def rang_deuxieme(lettre, chaine): """ lettre – str, un seul caractère chaine – str (chaîne de caractères) Sortie: int – deuxième indice auquel on trouve lettre dans chaine. Renvoie -1 si lettre n'est pas dans chaine ou bien si elle n'est présente qu'une seule fois. """ deuxieme_indice = -1 nb_occurrences = 0 for i in range(len(chaine)): if chaine[i] == lettre: if nb_occurrences == 0 or nb_occurrences == 1: deuxieme_indice = i nb_occurrences += 1 if nb_occurrences < 2: return -1 else: return deuxieme_indice