logo
Python et le codage des caractères.

Rappel :

L'opérateur de concaténation représenté le plus souvent par le symbole + désigne l'opération qui consiste en la "réunion" de 2 chaînes en une seule.

>>> Nom = "Tintin"
>>> str1 = "Bonjour "+Nom
>>> print(str1)
Bonjour Tintin
 

Travailler sur le code des caractères :

Les fonctions python chr(codeASCII) et ord(car) permettent de travailler sur le code ASCII/Unicode d'un caractère.

>>> car='A'
>>> ord(car)
65				#Ici le code ASCII est donné sous forme décimale
>>> ord('A')
65				#Ici le code ASCII est donné sous forme décimale
>>> chr(66)
'B'

Convertir le format décimal en héxadécimal ou en binaire

Les fonctions python bin(nombre) et hex(nombre) renvoient une chaîne de caractère représentant respectivement la représentation binaire et hexadécimale du nombre passé en paramètre.

>>> code = ord('A')
>>> code
65							# Code en décimal
>>> bin(code)
'0b1000001'					# Code en binaire (vous remarquerez qu'il commence par '0b')
>>> bin(code)[2:].zfill(8)
'1000001'					# Code sans le préfixe 0b (voir le rôle de la méthode zfill(8)
>>> hex(code)
'0x41'						# Code en hexa (vous remarquerez qu'il commence par '0x')
>>> hex(code)[2:]
'41'						# Code sans le préfixe 0x

Travail à réaliser.

Exercice 1

En utilisant la fonction ord(c) écrire une fonction nommée est_lettre_majuscule qui renvoie True si le caractère passé en paramètre est une lettre majuscule non accentuée et False sinon.

Exemple : est_lettre_majuscule('A') renvoie : True

# Code à copier dans votre éditeur et à compléter
def est_lettre_majuscule


# Jeu d'essai
print("Pass test1 --> ",est_lettre_majuscule('A')==True)
print("Pass test2 --> ",est_lettre_majuscule('Z')==True)
print("Pass test3 --> ",est_lettre_majuscule('a')==False)
print("Pass test4 --> ",est_lettre_majuscule('1')==False)
Exercice 2

En utilisant la fonction ord(c) écrire une fonction nommée est_alphanumerique qui renvoie True si le caractère passé en paramètre est une lettre majuscule ou minuscule non accentuée ou un chiffre et False sinon.

Exemple : est_alphanumerique('2') renvoie : True

# Code à copier dans votre éditeur et à compléter
def est_alphanumerique


# Jeu d'essai
print("Pass test1 --> ",est_alphanumerique('A')==True)
print("Pass test2 --> ",est_alphanumerique('2')==True)
print("Pass test3 --> ",est_alphanumerique('#')==False)
print("Pass test4 --> ",est_alphanumerique('$')==False)
Exercice 3

Étudiez la différence existant entre le numéro d’une lettre majuscule non accentuée de l’alphabet latin, et celui de la lettre minuscule correspondante.

Ecrire une fonction en_minuscule permettant de convertir une lettre majuscule en minuscule à partir de cette observation.

Vous utiliserez les fonction ord(c) et chr(code).

On estime que la lettre passée en paramètre est une lettre majuscule et rien d'autre.

Exemple : en_minuscule('A') renvoie : 'a'

# Code à copier dans votre éditeur et à compléter
def en_minuscule


# Jeu d'essai
print("Pass test1 --> ",en_minuscule('A')=='a')
print("Pass test2 --> ",en_minuscule('D')=='d')
print("Pass test3 --> ",en_minuscule('H')=='h')
print("Pass test4 --> ",en_minuscule('Z')=='z')
Exercice 4

Réalisez une fonction en_majuscule qui renvoie une chaîne de caractères identique à celle passée en paramètre si ce n’est que toutes les lettres latines minuscules ont été remplacées par la majuscule correspondante.

Exemple : en_majuscule ('Timoleon est un homme politique grec') 'TIMOLEON EST UN HOMME POLITIQUE GREC'

# Code à copier dans votre éditeur et à compléter
def en_majuscule


# Jeu d'essai
print("Pass test1 --> ",en_majuscule('')=='')
print("Pass test2 --> ",en_majuscule('bonjour')=='BONJOUR')
print("Pass test4 --> ",en_majuscule ('Timoleon est un homme politique grec')=='TIMOLEON EST UN HOMME POLITIQUE GREC')

Exercice 5

Réalisez une fonction dump_chaine qui renvoie une chaîne de caractères correspondant au dump de la chaîne passée en paramètre.

Exemple :

 
>>>dump_chaine('Python est un langage de programmation.')
50-79-74-68-6f-6e-20-65-73-74-20-75-6e-20-6c-61-6e-67-61-67-65-20-64-65-20-70-72-6f-67-72-61-6d-6d-61-74-69-6f-6e-2e
# Code à copier dans votre éditeur et à compléter
def dump_chaine


# Jeu d'essai
print("Pass test1 --> ",dump_chaine('')=='')
print("Pass test2 --> ",dump_chaine('bonjour')=='62-6f-6e-6a-6f-75-72')
print("Pass test4 --> ",dump_chaine ('Python est un langage.')=='50-79-74-68-6f-6e-20-65-73-74-20-75-6e-20-6c-61-6e-67-61-67-65-2e')