Calculer la longueur d’une chaîne de caractères
Écrire une fonction longueur_chaine(ch) qui reçoit en argument une chaîne de caractères ch et qui retourne sa longueur.
Écrire ensuite un programme qui permet de saisir une chaîne au clavier, puis d’afficher sa longueur de deux façons :
- avec la fonction
longueur_chaine(ch), - avec la fonction prédéfinie
len().
- Principe : on parcourt tous les caractères de la chaîne et on incrémente un compteur pour chacun d’eux.
- Fonction :
def longueur_chaine(ch): taille = 0 for c in ch: taille += 1 return taille - Programme de test :
ch = input("Saisir une chaine : ") print("Longueur de ch avec la fonction :", longueur_chaine(ch)) print("Longueur de ch avec len() :", len(ch)) - Résultat attendu : les deux affichages doivent donner la même longueur.
Compter les occurrences et trouver la première occurrence d’un caractère
Écrire une fonction nbr_occurence(ch, e) qui reçoit une chaîne ch et un caractère e, puis retourne le nombre d’occurrences de e dans ch.
Écrire également une fonction pr_occurence(ch, e) qui retourne l’indice positif de la première occurrence du caractère e dans ch, ou -1 si ce caractère n’existe pas.
Enfin, écrire un programme qui permet de saisir une chaîne et un caractère, puis de tester les deux fonctions.
- Nombre d’occurrences : on parcourt la chaîne et on incrémente un compteur chaque fois que le caractère courant est égal à
e.def nbr_occurence(ch, e): occ = 0 for c in ch: if c == e: occ += 1 return occ - Première occurrence :on parcourt la chaîne avec un indice, puis on retourne le premier indice où le caractère recherché apparaît.
def pr_occurence(ch, e): i = 0 for c in ch: if c == e: return i i += 1 return -1 - Programme de test :
ch = input("Saisir une chaine de caractères : ") e = input("Saisir un caractère : ") print("Nombre d'occurrences :", nbr_occurence(ch, e)) print("Première occurrence :", pr_occurence(ch, e)) - Résultat attendu : le programme affiche le nombre d’occurrences ainsi que la position de la première apparition du caractère.
Comparer et trier une liste de chaînes de caractères
Écrire une fonction cmp_chaine(ch1, ch2) qui compare deux chaînes ch1 et ch2 et retourne :
1sich1 > ch2,0sich1 == ch2,-1sich1 < ch2.
Écrire ensuite une fonction saisir_liste_chaine(n) qui retourne une liste de n chaînes, puis une fonction trier_liste_chaine(L) qui trie cette liste par ordre alphabétique.
Enfin, écrire un programme qui permet de saisir n chaînes et d’afficher la liste triée.
- Comparaison de deux chaînes :
def cmp_chaine(ch1, ch2): if ch1 > ch2: return 1 elif ch1 < ch2: return -1 else: return 0 - Saisie d’une liste de chaînes :
def saisir_liste_chaine(n): L = [""] * n for i in range(n): L[i] = input("Saisir la chaine N° {} : ".format(i + 1)) return L - Tri de la liste par ordre alphabétique :
def trier_liste_chaine(L): n = len(L) for i in range(n): for j in range(0, n - i - 1): if cmp_chaine(L[j], L[j + 1]) == 1: L[j], L[j + 1] = L[j + 1], L[j] - Programme de test :
n = int(input("Saisir le nombre d'éléments : ")) res = saisir_liste_chaine(n) trier_liste_chaine(res) print(res) - Résultat attendu : la liste affichée est triée dans l’ordre alphabétique croissant.
Vérifier si une chaîne contient uniquement des chiffres
Écrire une fonction chaine_chiffres(ch) qui reçoit une chaîne de caractères ch et retourne True si cette chaîne contient uniquement des caractères chiffres, sinon False.
Écrire ensuite un programme qui permet de saisir une chaîne puis de tester cette fonction.
- Principe : on parcourt tous les caractères de la chaîne et on vérifie qu’ils appartiennent à l’intervalle des chiffres.
- Implémentation :
def chaine_chiffres(ch): for c in ch: if c < '0' or c > '9': return False return True - Programme de test :
ch = input("Saisir une chaine : ") print(chaine_chiffres(ch)) - Résultat attendu : le programme affiche
Truesi la chaîne contient uniquement des chiffres, sinonFalse.
Supprimer les espaces initiaux et conserver uniquement les lettres
Écrire une fonction supp_espace(ch) qui retourne la chaîne ch après suppression des espaces placés au début de la chaîne.
Écrire aussi une fonction alphabetique(ch) qui retourne une nouvelle chaîne composée uniquement des caractères alphabétiques présents dans ch.
Enfin, écrire un programme qui permet de saisir une chaîne puis de tester les deux fonctions.
- Suppression des espaces initiaux :on cherche l’indice du premier caractère non espace, puis on retourne la sous-chaîne correspondante.
def supp_espace(ch): i = 0 while i < len(ch) and ch[i] == ' ': i += 1 return ch[i:] - Conservation des caractères alphabétiques :on construit une nouvelle chaîne en ne gardant que les lettres.
def alphabetique(ch): res = "" for c in ch: if 'a' <= c <= 'z' or 'A' <= c <= 'Z': res += c return res - Programme de test :
ch = input("Saisir une chaine : ") print(supp_espace(ch)) print(alphabetique(ch)) - Résultat attendu : le premier affichage supprime les espaces au début, le second ne conserve que les lettres de la chaîne.
Discussion (0)
Soyez le premier à laisser un commentaire !
Laisser un commentaire
Votre commentaire sera visible après modération.