2016-04-13 20 views
0
Ben en basit şekilde

En kısa yolu birbirini izleyen her çizgide

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

yazmak istiyorum

ile bir dizeye daha fazla karakter eklemek için.

print "Wow%s\n"%"!"*3 

Bu kadar yakın bir döngü olmadan elde edebilirim (ancak bu ünlemleri eklemez).

Python'da döngü olmadan bunu yapamazsanız, izin verecek bir dil olup olmadığını merak ediyorum.

+0

"en basit" tutarındaki tanımı nedir? – wim

+2

Çıktı üzerinde belirtilecek en fazla karakter sayısı. Tercihen bir döngü olmadan, ama onlara karşı hiçbir şey! – user391339

+0

en kısaini bulabildim: 'print '\ n'.join (' Wow! '+'! '* I (i menzil için i (4))' – wim

cevap

4

Kullanım join ve jeneratör ifade (döngü kaçınarak mümkün değildir)

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

Gerçekten Sen mümkün olmayacaktır

>>> 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

Anahtar kelime için kaçınmanın güzel bir hilesi! OP, orada * bir * orada * bir döngü olduğunu bilmeli, [sözcük] * (n-1) ' – zmbq

+0

@zmbq Her yerde gizli döngüler var! (sssh, OP'ye söyleme): D –

2

for anahtar kelimeyi kaçınmak istiyorsanız Bunu bir tür döngü olmadan yapın, ünlem işareti sayısını 1'den sonsuza değiştirmek zorundasınız ve bunun için bir döngüye ihtiyacınız var.

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

hala içeride bir döngü var:

Gerçi döngü kendini yazmadan yapabilirsiniz.

0
Böyle biçim dizesi içine gerekir

:

print "Wow%s\n" % ("!"*3) 
İlgili konular