Vous êtes sur la page 1sur 3

TD N°1 SUR LES CHAÎNES DE CARACTÈRES EN PYTHON

Exercice 1
1. Ecrire une fonction longueur_chaine(ch)qui recoit en argument une chaine de
caractères ch, et qui retourne sa taille.
?

1def longueur_chaine(ch):
2 taille = 0
3 for c in ch: # pour chaque c de ch
4 taille += 1
5 return taille
2. Ecrire un programme qui permet de :
o Saisir au clavier une chaine de caractères
o Afficher la taille de cette chaine de caractères de deux facons : avec la
fonction longueur_chaine(ch) et avec la fonction prédéfinie len()
o ?

1ch = input("Saisir une chaine : ")


2print("Longuer de ch est : ",longueur_chaine(ch))
Exercice 2
1. Ecrire une fonction nbr_occurence(ch,e) qui recoit en arguments une chaine de
caractères ch et un caractère e, la fonction retourne le nombre d'aoccurences du
caractère e dans la chaine ch.
?

1def nbr_occurence(ch, e):


2 occ = 0
3 for c in ch:# pour chaque c de ch
4 if c == e:
5 occ += 1
6 return occ
2. Ecrire une fonction pr_occurence(ch,e) qui recoit en argument une chaine de
caractères ch et un ccaractère e, la fonction retourne l'indice positif de la premère
occurrence du caractère e s'il existe dans la chaine chsinon elle retourne -1
?

1
def pr_occurence(ch, e):
2 occ = -1
3 i = 0
4 for c in ch:# pour chaque c de ch
5 if c == e:
6 return i
7 i += 1
8 return occ
3. Ecrire un programme qui permet de saisir une chaine de caractères et un caractère,
puis de tester les fonctions définies dans les questions 1 et 2
?

1ch = input("Saisir une chaine de caractères : ")


2print("Le premier occuement de a est ", pr_occurence(ch, 'a'))
Exercice 3
1. Ecrire une fonction cmp_chaine(ch1,ch2) qui recoit en argument deux chaine de
caractères ch1 et ch2, la fonction compare ch1 et ch2et retourne :
o 1 si ch1 > ch2
o 0 si ch1 = ch2
o -1 si ch1<ch2
2. ?

1def cmp_chaine(ch1, ch2):


2 if ch1 > ch2:
3 return 1
4 elif ch1 < ch2:
5 return -1
6 else:
7 return 0
8
3. Ecrire une fonction saisir_liste_chaine(n) qui recoit en argument un entier n et qui
retourne une liste de n chaines de caractères
?

1def saisir_liste_chaine(n):
2 L = [""]*n
3 for i in range(n):
4 L[i] = input('Saisir la chaine N° {} : '.format(i+1))
5
6 return L
4. Ecrire une fonction trier_liste_chaine(L,n) qui recoit en argument une
liste L de n chaines de caractères alphabétiques, la fonction trie et retourne la
liste Ltriée suivant l'order alphabétique.
?

1
2# Tri à bulles
3# Ordre croissant
4def trier_liste_chaine(L):
n = len(L)
5
6
# Parcourez tous les éléments du tableau
7
for i in range(n):
8
9 # Les i derniers éléments sont déjà en place
10 for j in range(0, n-i-1):
11
12 # Parcourez le tableau de 0 à n-i-1
13 # Échanger si l'élément trouvé est supérieur
14 # que l'élément suivant
15 if cmp_chaine(L[j], L[j+1]) == 1:
16 L[j], L[j+1] = L[j+1], L[j]
5. Ecrire un programme qui permet de saisir un entier n et une liste de nchaines de
caractères, puis de tester les fonctions définie dans les questions 1, 2 et 3.
?

1n = int(input("Saisir le nombre d'élements : "))


res = saisir_liste_chaine(n)
2
3trier_liste_chaine(res)
4print(res)
Exercice 4
1. Ecrire une fonction chaine_chiffres(ch) qui recoit en argument une chaine de
caractères ch, la fonction retourne True si la chaine ch contient seulement des
caractères chiffres sinon elle retourne False.
?

1def chaine_chiffres(ch):
2 for c in ch:# pour chaque c de ch
3 if c < '1' or c > '9':
4 return False
5 return True
2. Ecrire un programme qui permet de saisir une chaine de caractères, puis de tester la
fonction définie dans la question 1.
?

1ch = input("Saisir une chaine : ")


2print(chaine_chiffres(ch))
Exercice 5
1. Ecrire une fonction supp_espace(ch) qui recoit en argument une chaine de
caractères ch, la fonction retourne la chaine chaprès avoir supprimé tous les
caractères espaces s'ils existent au début de cette chaine.
?

1def supp_espace(ch):
2 i = 0 # indice de dernier caractère espace
3 for c in ch:# pour chaque c de ch
4 if c == ' ':
5 i += 1
6 return ch[i:]
2. Ecrire une fonction alphabetique(ch) qui recoit en argument une chaine de
caractères ch, la fonction retourne la chaine chaprès avoir supprimé tous les
caractères qui ne sont pas des caractères alphabétiques dans cette chaine.
?

1def alphabetique(ch):
2 res = ""
3 for c in ch:# pour chaque c de ch
4 if 'a' <= c <= 'z' or 'A' <= c <= 'Z':
5 res += c
6 return res
3. Ecrire un programme qui permet de saisir une chaine de caractère, puis tester les
deux fonctions définies dans les question 1 et 2.
?

1ch = input("Saisir une chaine : ")


2print(supp_espace(ch))
3print(alphabetique(ch))

Vous aimerez peut-être aussi