Python字符串三倍重复函数paper_doll输出异常求助
问题分析与修正
你的代码问题出在循环里的拼接语句:
result += result + tripled_letter
错误原因拆解
每次循环时,你错误地把当前的result重复了一次,再加上三倍字符,导致结果不断翻倍累积:
- 第一次循环(处理'H'):初始
result是空字符串,result + tripled_letter等于'' + 'HHH',执行result +=后,result变成'HHH' - 第二次循环(处理'e'):
result + tripled_letter等于'HHH' + 'eee',执行result +=后,result变成'HHH' + 'HHHeee' = 'HHHHHHeee' - 后续每一次循环都会把之前的结果再复制一遍,再拼接新的三倍字符,最终输出自然会出现大量重复内容
修正方法
把拼接语句改成直接追加三倍字符即可:
def paper_doll(text): result = '' for letter in text: tripled_letter = letter*3 result += tripled_letter # 只追加当前字符的三倍形式 return result
或者更简洁的写法,用生成器表达式一次性拼接:
def paper_doll(text): return ''.join([c*3 for c in text])
测试paper_doll('Hello'),就能得到预期的'HHHeeellllllooo'了。
内容的提问来源于stack exchange,提问作者superunknown
相关产品推荐
相关产品推荐

