Liste hexadécimale en python

Résolu
LucasBou Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
LucasBou Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -
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 :)
A voir également:

2 réponses

Utilisateur anonyme
 
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
LucasBou Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Merci j'ai juste eu à modifier la fonction ascii2hex avec ce que vous avez mis en haut et ça marche
Encore merci :)
0
Utilisateur anonyme
 
Mon code complet est plus efficace, l'avez-vous testé ? est-il fonctionnel ?
0
LucasBou Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Je l'ai testé et la boite de commande plante directement
0
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...
0
LucasBou Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Ah oui merci beaucoup ça marche :)
0
Utilisateur anonyme
 
print ''.join(liste_hexa)[2:]

?
0
LucasBou Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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
0