在每一行连续的字符串中添加更多字符的最短方法



我想写

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

以最简单的方式。

print "Wow%sn"%"!"*3

是在没有循环的情况下我能接近的(但它没有添加惊呼)。

如果你不能在没有循环的python中做到这一点,我很好奇是否有一种语言可以允许它。

使用join和生成器表达式(无法避免循环)

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

如果你真的想避免for关键字

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

如果没有某种循环,你将无法做到这一点,因为你需要将感叹号的数量从1更改为无穷大,为此你需要一个循环。

不过,你可以在不自己写循环的情况下做到这一点:

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

里面还有一个环。

您需要将格式字符串括起来,如下所示:

print "Wow%sn" % ("!"*3)

最新更新