2016-10-02 11 views
0

Ich muss in der Lage sein, eine Eingabe zu nehmen, Sonderzeichen zu entfernen, alle Großbuchstaben in Kleinbuchstaben zu setzen, in ASCII-Code mit einem Offset von 5 zu konvertieren und diese Werte dann wieder in Zeichen umzuwandeln, um ein Wort zu bilden. Ich erhalte immer Typeerror: ‚int‘ Objekt am Ende nicht iterable istWie konvertiert man ASCII-Codes in Text?

string=(str(raw_input("The code is:"))) 

#change it to lower case 
string_lowercase=string.lower() 

print "lower case string is:", string_lowercase 

#strip special characters 

specialcharacters="1234567890~`[email protected]#$%^&*()_-+={[}]|\:;'<,>.?/" 

for char in specialcharacters: 
    string_lowercase=string_lowercase.replace(char,"") 

print "With the specials stripped out the string is:", string_lowercase 

#input offset 

offset=(int(raw_input("enter offset:"))) 

#converstion of text to ASCII code 

for i in string_lowercase: 
    code=ord(i) 
    result=code-offset 

#converstion from ASCII code to text 
for number in result: 
    message=repre(unichr(number)) 
    print message 
+0

'result' ist ein' int'. Sie versuchen dann, darüber zu iterieren. Ich denke, was Sie stattdessen wollen, ist 'result.append (code - offset)'. Das bedeutet, dass Sie Ihr 'Ergebnis'-Argument tatsächlich als 'Liste' initialisieren müssen, daher sollte' result = [] 'vor Ihrer Schleife stehen. – idjaw

Antwort

0

Sie erhalten TypeError: 'int' object is not iterable at the end weil Sie result jedes Mal über die Schleife als int deklarieren. result sollte eine Liste und jeder Code, um es über die Schleife angehängt werden, wie folgt aus:

#converstion of text to ASCII code 
result = [] 
for i in string_lowercase: 
    code=ord(i) 
    result.append(code-offset) 
Verwandte Themen