Python 在每一连续行中向字符串添加更多字符的最短方法
我想写作Python 在每一连续行中向字符串添加更多字符的最短方法,python,string,Python,String,我想写作 Wow! Wow!! Wow!!! Wow!!!! ... etc 以尽可能简单的方式 print "Wow%s\n"%"!"*3 在没有循环的情况下尽可能接近(但不会添加感叹号) 如果在python中没有循环就无法做到这一点,我很好奇是否有一种语言允许它 使用和生成器表达式(无法避免循环) 如果你真的想避免使用关键字 >>> n = 4 >>> word = "Wow" >>> symb = "!" >>>
Wow!
Wow!!
Wow!!!
Wow!!!!
... etc
以尽可能简单的方式
print "Wow%s\n"%"!"*3
在没有循环的情况下尽可能接近(但不会添加感叹号)
如果在python中没有循环就无法做到这一点,我很好奇是否有一种语言允许它 使用和生成器表达式(无法避免循环)
如果你真的想避免使用
关键字
>>> 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!!!
使用和生成器表达式(无法避免循环)
如果你真的想避免使用关键字
>>> 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)]
这里仍然有一个循环。如果没有某种循环,您将无法执行此操作,因为您需要将感叹号的数量从1更改为无穷大,为此您需要一个循环
不过,您可以在不亲自编写循环的情况下执行此操作:
["Wow" + '!'*n for n in range(500000000)]
其中仍然有一个循环。您需要将格式字符串括起来,如下所示:
print "Wow%s\n" % ("!"*3)
您需要将格式字符串括起来,如下所示:
print "Wow%s\n" % ("!"*3)
“最简单”的定义是什么?指定上述输出的最少字符数。最好没有环,但没有对他们不利!我能找到的最短信息:打印'\n'。加入('Wow!'+'!'*I范围(4))
谢谢提醒。我很难在你的答案和zmbq的答案之间做出决定(两者都是向上投票的),然后我被迫返回到工作台上,并且有几天无法使用堆栈。@user391339 Np,zmbq的ans使用串联。我之所以使用格式
,只是因为它是推荐的(因为我已经习惯了)。我提供的另一种选择只是为了好玩而不是为了使用。您对“最简单”的定义是什么?指定上述输出的最少字符数。最好没有环,但没有对他们不利!我能找到的最短信息:打印'\n'。加入('Wow!'+'!'*I范围(4))
谢谢提醒。我很难在你的答案和zmbq的答案之间做出决定(两者都是向上投票的),然后我被迫返回到工作台上,并且有几天无法使用堆栈。@user391339 Np,zmbq的ans使用串联。我之所以使用格式
,只是因为它是推荐的(因为我已经习惯了)。我提供的另一种选择只是为了好玩,而不是被使用。避免关键字for的好技巧!OP应该知道那里仍然有一个循环,在[word]*(n-1)
@zmbq中,到处都隐藏着循环!(sssh,不要告诉OP):DNice技巧避免使用for关键字!OP应该知道那里仍然有一个循环,在[word]*(n-1)
@zmbq中,到处都隐藏着循环!(嘘,别告诉OP):D