Exercice 98*
Ecrire un algorithme en Python sous forme de fonction qui permet de transformer les chaines de caractères en majuscule sans utiliser la méthode upper().
Solution
Rappel sur les fonctions ord() et chr()
- la fonction ord() renvoie le code ASCII d'un caractère. Pour les caractère minuscule si on applique cette fonction on obtient :
ord('a') = 97 , ord('b') = 98 , ... , ord('z') = 122
Tandis que pour les caractères majuscules on obtient: ord('A') = 65 , ord('B') = 66 , ... , ord('Z') = 90
- La fonction chr() permet de faire l'opération inverse:
chr(65) = 'A' , chr(66) = B, ... , chr(90) = 'Z'
donc pour passer d'un caractère majuscule à un caractère minuscule, il suffit d'ajouter 32 à son ordre.
Voici donc l'algorithme qui transforme une chaine de caractères majuscules en une chaine de caractères minuscules
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# coding: utf-8 # fonction sui transforme une chaine en majuscule def maj(s): # initialisation de la chaine s_maj = "" for x in s: # on teste si x est un caractère minuscule if ord(x) >= 97 and ord(x) <= 122 : # on transforme x en majuscule x = chr(ord(x) - 32) s_maj = s_maj + x else: s_maj = s_maj + x return s_maj # Exemple s1 = "hello world" s2 = "Hello World !" print(maj(s1)) # affiche HELLO WORLD print(maj(s2)) # affiche HELLO WORLD ! |
Younes Derfoufi
CRMEF OUJDA
3 thoughts on “Solution Exercice 98: transformer une chaine majuscule en minuscules sans utiliser la méthode upper”