2016-10-19 5 views
1

Ich versuche, Code zu erstellen, die ein Benutzer Vor- und Nachname (Eingabereihenfolge ist zuletzt, zuerst) und druckt es zuerst, zuletzt in einer Kaskadierung Weise sammelt:Benutzereingaben in "Kaskade" von Zeichen drucken?

J 
    o 
     h 
     n 
    S 
    m 
     i 
     t 
      h 

Ich bin ganz in der Nähe, aber ich gefällt mir nicht, wie mein Code funktioniert. Ich denke, es gibt einen einfacheren Weg, und ich stoße auch auf Probleme, wo ich bekomme IndexError: String-Index außerhalb des Bereichs, wenn ich einen Namen eingeben, die länger ist als wie viele Druckanweisungen, die ich reinlegen. Irgendwelche Ideen?

hier ist mein Code:

last = raw_input('enter your last name:') 
first= raw_input('enter your first name:') 
print(first[0]) 
print('\t' + first[1]) 
print('\t'*2 + first[2]) 
print('\t'*3+first[3]) 
print('\t'*4+first[4]) 
print('\t'*5+first[5]) 
print('\t'*6+first[6]) 
print(last[0]) 
print('\t' + last[1]) 
print('\t'*2 + last[2]) 
print('\t'*3+last[3]) 
print('\t'*4+last[4]) 
print('\t'*5+last[5]) 

Antwort

1

Sie können eine generische Funktion schreiben, wie die für die Saiten unten und Wiederverwendung gezeigt.

def cascade_name(name): 
    for i, c in enumerate(name): 
     print '\t'*(i+1), c 

Ausgang:

>>> cascade_name("foo") 
    f 
     o 
      o 

In Ihrem Fall würden Sie tun:

last = raw_input('enter your last name:') 
first= raw_input('enter your first name:') 
cascade_name(last) 
cascade_name(first) 
Verwandte Themen