Liste hexadécimale en python [Résolu/Fermé]

Signaler
Messages postés
9
Date d'inscription
lundi 21 octobre 2013
Statut
Membre
Dernière intervention
27 février 2014
-
Messages postés
9
Date d'inscription
lundi 21 octobre 2013
Statut
Membre
Dernière intervention
27 février 2014
-
Bonjour,

J'ai ce code

def ascii2hex(caractere):
return hex(ord(caractere))

def ascii2hexa_liste(liste):
aux = []
for elem in liste:
aux.append(ascii2hex(elem))
return aux

chaine = raw_input("Chaine a coder : ")
liste_hexa = ascii2hexa_liste(list(chaine))
print liste_hexa

Le programme fait rentrer une chaine de caractères puis la traduit en une liste en hexadécimal. Chaque chiffre en hexadécimal commence par 0x.
J'aimerais pour faire sortir la liste sans les 0x devant chaque chiffre

Merci d'avance pour votre aide :)

2 réponses


Ok, dans cette fonction on doit pouvoir faire la totale

def ascii2hex(caractere):
return hex(ord(caractere))[2:]

Puis modifier votre fonction ascii2hexa_liste par

def ascii2hexa_liste(chaine):
for elem in chaine:
yield ascii2hex(elem)

Pour le résultat final

chaine = raw_input("Chaine a coder : ") 
print ''.join(ascii2hexa_liste(chaine))

Non testé...

Si ça ne fonctionne pas, garder comme avant et ne modifier que la fonction ascii2hex comme ci-dessus.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
9
Date d'inscription
lundi 21 octobre 2013
Statut
Membre
Dernière intervention
27 février 2014

Merci j'ai juste eu à modifier la fonction ascii2hex avec ce que vous avez mis en haut et ça marche
Encore merci :)
Utilisateur anonyme
Mon code complet est plus efficace, l'avez-vous testé ? est-il fonctionnel ?
Messages postés
9
Date d'inscription
lundi 21 octobre 2013
Statut
Membre
Dernière intervention
27 février 2014

Je l'ai testé et la boite de commande plante directement
Utilisateur anonyme
Désolé, j'ai pu m'empêcher de tester et c'est fonctionnel, c'est rare de réussir à la main du 1er coup, mais je voyais pas mon erreur, normal, car il n'y en avait pas ;)

Voilà mon test sur l'interpréteur

>>> def ascii2hex(caractere):
... return hex(ord(caractere))[2:]
...
>>> def ascii2hexa_liste(chaine):
... for elem in chaine:
... yield ascii2hex(elem)
...
>>> chaine = raw_input("chaine à coder : ")
chaine à coder : Bonjour
>>> print ''.join(ascii2hexa_liste(chaine))
426f6e6a6f7572

Bonne continuation...
Messages postés
9
Date d'inscription
lundi 21 octobre 2013
Statut
Membre
Dernière intervention
27 février 2014

Ah oui merci beaucoup ça marche :)

print ''.join(liste_hexa)[2:]

?
Messages postés
9
Date d'inscription
lundi 21 octobre 2013
Statut
Membre
Dernière intervention
27 février 2014

Quand je met ça il me sort le premier nombre en hexa sans 0x puis après il affiche les autres avec des 0x
Désolé je suis un grand débutant je ne vois vraiment pas comment faire