Convert string to ascii

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Grobian
User
Beiträge: 6
Registriert: Montag 29. Oktober 2012, 16:09

Sonntag 11. November 2012, 17:31

Hallo,

ich habe ein Problem mit der Konvertierung text->ascii:

was ich mache:

Code: Alles auswählen

message = raw_input("Enter message to encode: ")

for ch in message:
   s=str (ord(ch))
   if len(s)==2:
   print '0'+str (ord(ch)),
   if len(s)==3:
   print str (ord(ch)),
das liefert mir für "w,w"
119 044 119

hiermit:

Code: Alles auswählen

d = reduce(lambda x, y: str(x)+str(y), map(ord,message))
print d
bekomme ich
11944119

Ich brauche aber eine Mischung aus beiden, nämlich
119044119 (also die Null ist wichtig....)

Hat jemand eine Idee?

Vielen Dank!
Grobian



1)
Sirius3
User
Beiträge: 10875
Registriert: Sonntag 21. Oktober 2012, 17:20

Sonntag 11. November 2012, 17:41

Hallo,

1) um Strings aneinanderzuhängen gibt es join statt reduce.
2) für führende Nullen gibt es Format-Strings: '%03d'%ord(ch)
3) über dem Eingabefeld gibt es einen Knopf, da steht |python| drauf.

Grüße
Sirius
Grobian
User
Beiträge: 6
Registriert: Montag 29. Oktober 2012, 16:09

Sonntag 11. November 2012, 18:10

Hallo Sirius,

danke für die Antwort.

zu 3) hatte ich nicht gesehen...

zu 2) das klappt, aber das Problem was ich noch habe:
ich will keine Leerzeichen haben, nicht 119 046 119 sondern wirklich 119046119

Grüße
Grobian
Sirius3
User
Beiträge: 10875
Registriert: Sonntag 21. Oktober 2012, 17:20

Sonntag 11. November 2012, 18:25

Hallo Grobian,

die Leerzeichen kommen vom print. Du hast Hinweis 1 noch
nicht befolgt :D

Code: Alles auswählen

print ''.join('%03d'%ord(ch) for ch in message)
Grüße
Sirius
Grobian
User
Beiträge: 6
Registriert: Montag 29. Oktober 2012, 16:09

Sonntag 11. November 2012, 18:53

In der Tat, vielen Dank!

Grüße
Grobian
Antworten