Python字符串重复函数respond_echo输出格式不符求助
问题分析
你的代码错误出在循环内部多做了一次重复乘法:
- 外层已经用
for i in range(number_of_echoes)循环了指定次数,但每次循环里又把(input_string+spacer)乘以number_of_echoes,导致最终内容重复了number_of_echoes × number_of_echoes次,同时每个input_string后面会跟着number_of_echoes个spacer,这就是错误输出的原因。
修正方案
方案一:简化循环逻辑
直接在每次循环中添加一次input_string+spacer即可:
def respond_echo(input_string, number_of_echoes, spacer): echo_output = '' if len(input_string) > 0: for i in range(number_of_echoes): echo_output += input_string + spacer else: echo_output = None return echo_output
方案二:用字符串join高效实现
不需要循环,利用Python字符串的join方法可以更简洁地完成拼接,最后补上结尾的spacer:
def respond_echo(input_string, number_of_echoes, spacer): if len(input_string) > 0: # 先拼接成"meow~meow~meow",再添加结尾的spacer得到目标格式 return spacer.join([input_string] * number_of_echoes) + spacer else: return None
调用respond_echo('meow', 3, '~')会得到你期望的输出:'meow~meow~meow~'
内容的提问来源于stack exchange,提问作者awwkotaco
相关产品推荐
相关产品推荐

