Seite 1 von 1

Convert string to ascii

Verfasst: Sonntag 11. November 2012, 17:31
von Grobian
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)

Re: Convert string to ascii

Verfasst: Sonntag 11. November 2012, 17:41
von Sirius3
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

Re: Convert string to ascii

Verfasst: Sonntag 11. November 2012, 18:10
von Grobian
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

Re: Convert string to ascii

Verfasst: Sonntag 11. November 2012, 18:25
von Sirius3
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

Re: Convert string to ascii

Verfasst: Sonntag 11. November 2012, 18:53
von Grobian
In der Tat, vielen Dank!

Grüße
Grobian