2016-08-15 3 views
0

Der folgende Code konvertiert Zahlen in Buchstaben, aber ich kann nur eine Zahl auf einmal eingeben.schreiben Sie mehrere Werte auf einzelnen Eingang

import string 


def translate(): 
    d = dict(enumerate(string.ascii_lowercase, 0)) 
    message = d[int(input('Enter:'))] 
    print(message) 

translate() 

Beispiel dafür, was ich versuche zu tun: eingeben: 25345265 dann wäre es Ausgabe alle Zahlen in die entsprechenden Buchstaben

+0

Wie gehen Sie mit den Unklarheiten in Ihrer Nummer um? Wird "253" zu "cfd" oder "zd" werden? –

+0

@ juanpa.arrivillaga nicht sicher, was der beste Weg wäre. Ich habe darüber nachgedacht, eine Liste daraus zu erstellen. Einfach ein Komma zu verwenden wäre das schnellste, nehme ich an. 2, 5, 3 ect ... Ich sollte eine Ausnahme machen, um wahrscheinlich nicht über 25 zu gehen. –

+1

Oder nur Leerzeichen: "2 22 2 3 23" –

Antwort

0

Dieser Ihre grundlegenden Ansatz sein könnte:

>>> import string 
>>> d = {str(k):v for k,v in enumerate(string.ascii_lowercase)} 
>>> message = input('Enter:') 
Enter:2 5 3 
>>> print("".join(d[x] for x in message.split())) 
cfd 
>>> message = input('Enter:') 
Enter:25 3 
>>> print("".join(d[x] for x in message.split())) 
zd 
>>> message = input('Enter:') 
Enter:8 26 5 3 

Um mit Werten umzugehen, die außerhalb Ihres Bereichs liegen, können Sie diese entweder einfach nicht akzeptieren oder mit einem Standardwert wie '*'

umgehen
>>> message = input('Enter:') 
Enter:8 26 5 25 
>>> print("".join(d.get(x,'*') for x in message.split())) 
i*fz 
Verwandte Themen