6
votes

Conversion de chaîne en ASCII en utilisant ORD ()

Je dois préférer ceci en disant que je suis un néophyte (apprentissage), alors renoncez à l'omission de l'évidence de déférence pour un homme qui a eu une exposition limitée à votre monde (python).

Mon objectif est de Obtenez une chaîne d'un utilisateur et convertissez-la en chaîne HEX et ASCII. J'ai pu accomplir cela avec succès avec hexagonal ( Encode ("HEX") code>), mais pas si avec ASCII. J'ai trouvé la méthode ord () code> et j'ai tenté d'utiliser cela, et si j'utilise simplement: impression ORD (i) code>, la boucle iTère la traversée et imprime les valeurs à la Écran verticalement, pas où je les veux. Donc, j'ai essayé de les capturer avec un tableau de cordes afin que je puisse les concéder à une ligne de chaîne, les imprimer horizontalement sous la valeur "hex". J'ai juste épuisé mes ressources sur la création de cela ... Toute aide est apprécié. Merci! p>

while True:
   stringName = raw_input("Convert string to hex & ascii(type stop to quit): ")
   if stringName == 'stop':
      break
   else:   
      convertedVal = stringName.encode("hex")
      new_list = []
      convertedVal.strip() #converts string into char
      for i in convertedVal:
         new_list = ord(i)


      print "Hex value: " + convertedVal
      print "Ascii value: " + new_list     


3 commentaires

Qu'attendez-vous que votre sortie ASCII ressemble? Juste des valeurs décimales délimitées par des virgules? I.e.: "97, 98, 65, 65"


Si un utilisateur entre dans la chaîne: '123431': hex = 313233343331 ASCII = 49 50 51 52 51 49


Merci DP .... En outre, je ne voulais pas mettre des espaces entre les valeurs ASCII sur mon dernier commentaire.


3 Réponses :


6
votes

quelque chose comme ça? XXX PRE>

Ceci vous donne P>

>>> convert_to_ascii("hello")
'104 101 108 108 111'


0 commentaires

7
votes

Est-ce ce que vous recherchez? XXX


1 commentaires

Oui! J'ai eu du code presque identique à celui plus tôt, mais éteint! Pourquoi avez-vous utilisé la mystérieuse () sur la ligne StringName ... Merci encore!



1
votes
print "ASCII value: ",  ", ".join(str(i) for i in new_list)

0 commentaires