Liste hexadécimale en python

Résolu
LucasBou Messages postés 9 Statut Membre -  
LucasBou Messages postés 9 Statut Membre -
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

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

    ?
    0
    1. LucasBou Messages postés 9 Statut Membre
       
      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