使用每个连续行向字符串添加更多字符的最短方法

时间:2016-04-13 19:38:44

标签: python string

我想写

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

以最简单的方式实现。

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

我可以在没有循环的情况下接近(但它不会添加感叹号)。

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

3 个答案:

答案 0 :(得分:4)

使用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 :(得分:2)

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

你可以自己编写循环,但是:

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

那里还有一个循环。

答案 2 :(得分:0)

您需要将您的格式字符串括起来:

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