TD N°1 sur les chaînes de caractères en Python
Exercice 1
- Ecrire une fonction longueur_chaine(ch)qui recoit en argument une chaine de caractères ch, et qui retourne sa taille.
def longueur_chaine(ch): taille = 0 for c in ch: # pour chaque c de ch taille += 1 return taille
- Ecrire un programme qui permet de :
- Saisir au clavier une chaine de caractères
- 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()
ch = input("Saisir une chaine : ") print("Longuer de ch est : ",longueur_chaine(ch))
Exercice 2
- 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.
def nbr_occurence(ch, e): occ = 0 for c in ch:# pour chaque c de ch if c == e: occ += 1 return occ
- 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
def pr_occurence(ch, e): occ = -1 i = 0 for c in ch:# pour chaque c de ch if c == e: return i i += 1 return occ
- 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
ch = input("Saisir une chaine de caractères : ") print("Le premier occuement de a est ", pr_occurence(ch, 'a'))
Exercice 3
- 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 :
- 1 si ch1 > ch2
- 0 si ch1 = ch2
- -1 si ch1<ch2
def cmp_chaine(ch1, ch2): if ch1 > ch2: return 1 elif ch1 < ch2: return -1 else: return 0
- Ecrire une fonction saisir_liste_chaine(n) qui recoit en argument un entier n et qui retourne une liste de nchaines de caractères
def saisir_liste_chaine(n): L = [""]*n for i in range(n): L[i] = input('Saisir la chaine N° {} : '.format(i+1)) return L
- 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.
# Tri à bulles # Ordre croissant def trier_liste_chaine(L): n = len(L) # Parcourez tous les éléments du tableau for i in range(n): # Les i derniers éléments sont déjà en place for j in range(0, n-i-1): # Parcourez le tableau de 0 à n-i-1 # Échanger si l'élément trouvé est supérieur # que l'élément suivant if cmp_chaine(L[j], L[j+1]) == 1: L[j], L[j+1] = L[j+1], L[j]
- 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.
n = int(input("Saisir le nombre d'élements : ")) res = saisir_liste_chaine(n) trier_liste_chaine(res) print(res)
Exercice 4
- 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.
def chaine_chiffres(ch): for c in ch:# pour chaque c de ch if c < '1' or c > '9': return False return True
- Ecrire un programme qui permet de saisir une chaine de caractères, puis de tester la fonction définie dans la question 1.
ch = input("Saisir une chaine : ") print(chaine_chiffres(ch))
Exercice 5
- 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.
def supp_espace(ch): i = 0 # indice de dernier caractère espace for c in ch:# pour chaque c de ch if c == ' ': i += 1 return ch[i:]
- 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.
def alphabetique(ch): res = "" for c in ch:# pour chaque c de ch if 'a' <= c <= 'z' or 'A' <= c <= 'Z': res += c return res
- 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.
ch = input("Saisir une chaine : ") print(supp_espace(ch)) print(alphabetique(ch))
Partager ce cours avec tes amis :
Rédigé par
ESSADDOUKI
Mostafa