2016-04-13 8 views
0

IKürzester Weg mehr Zeichen in eine Zeichenfolge mit jeder folgenden Zeile

Wow! 
Wow!! 
Wow!!! 
Wow!!!! 
... etc 

auf einfachste Weise möglich schreiben will hinzuzufügen.

Ist so nah, ich kann ohne eine Schleife (aber es fügt nicht die Ausrufe).

Wenn Sie dies in Python nicht ohne eine Schleife tun können, bin ich neugierig, ob es eine Sprache gibt, die es erlauben würde.

+0

Was ist Ihre Definition von "einfachsten"? – wim

+2

Mindestanzahl von Zeichen zur Angabe der obigen Ausgabe. Am liebsten ohne Schleife, aber nichts gegen sie! – user391339

+0

Kürzeste konnte ich finden: 'print '\ n'.join (' Wow! '+'! '* I für i im Bereich (4))' – wim

Antwort

4

Verwendung join und ein Generator Ausdruck (die Schleife zu vermeiden, ist nicht möglich)

>>> print"\n".join("Wow{}".format('!'*i) for i in range(1,4)) 
Wow! 
Wow!! 
Wow!!! 
Wow!!!! 

Wenn Sie wirklich for Stichwort vermeiden wollen

>>> n = 4 
>>> word = "Wow" 
>>> symb = "!" 
>>> print("\n".join(map(lambda x:x[0]+x[1],zip([word]*(n-1),map(lambda i:symb*i,range(1,n)))))) 
Wow! 
Wow!! 
Wow!!! 
+0

Netter Trick, der das for Schlüsselwort vermeidet! OP sollte wissen, dass da * noch * eine Schleife da ist, in '[Wort] * (n-1)' – zmbq

+0

@zmbq Überall sind Schleifen versteckt! (Sssh, sag dem OP nicht): D –

2

Sie werden nicht in der Lage sein, Tun Sie dies ohne irgendeine Art von Schleife, da Sie die Anzahl der Ausrufezeichen von 1 bis unendlich ändern müssen, und dafür benötigen Sie eine Schleife.

können Sie tun, dass die Schleife selbst ohne das Schreiben, aber:

["Wow" + '!'*n for n in range(500000000)] 

Es dort noch eine Schleife ist.

0

Sie benötigen eine Format-String so umschließen:

print "Wow%s\n" % ("!"*3) 
Verwandte Themen