Comment Convertir un texte en son équivalent binaire?

Résolu
Inariuss Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
maxitruc Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour tous le monde, je suis lycéen et je dois faire un exercice qui consiste en la rédaction d'un programme qui demande à l'utilisateur de rentrer un texte, avant de convertir ledit texte, lettre par lettre, en binaire.

Je voudrais donc savoir si pouviez m'indiquer une fonction qui permettrait de convertir une chaine en binaire.

Le code devrait ressembler à quelque chose comme ça:


Chaine=list(input("Saisissez un texte :"))

for letter in Chaine:
LettreBinaire= ///CONVERSION DE LA LETTRE EN BINAIRE///
print(lettre, "---->", LettreBinaire)




ce qui devrait donner un résultat du genre:

Saisissez un texte :
Bonjour

B--->010101110
o--->010101010
n--->101010001
j--->111010111
o--->010001110
u--->010101110
r--->101111010



J'espère avoir exposer le problème à peu près clairement...
Voila, voila, merci pour l'aide et bonne journée à tous :)
A voir également:

5 réponses

Utilisateur anonyme
 
Ok, il y a une fonction existante nommée bin(num) où num est la valeur décimale de ton caractère.

Seulement pour avoir la valeur décimale, tu dois utiliser une autre fonction nommée ord(letter) où letter est ta lettre.

>>> ord("B")
66
>>> bin(ord("B"))
'0b1000010'

On voit que le petit b dans le résultat est de trop, il faut le virer

J'utilise une méthode nommée le slicing

>>> bin(ord("B"))[2:]
'1000010'

Il faut ajouter le '0' en début de ligne

>>> '0' + bin(ord("B"))[2:]
'01000010'

Maintenant pour chaque lettre de ta chaîne de caractères une boucle for fera tout simplement l'affaire

>>> for char in "Bonjour":
... print('0' + bin(ord(char))[2:])
...
01000010
01101111
01101110
01101010
01101111
01110101
01110010


Bonne continuation...
7