Python for循环拼接字符串为何需在循环外定义,仅返回最后字符三倍原因
问题原因
- 变量
text1的初始化位置错误:你把text1 = ''写在了for循环内部,每遍历一个字符,就会把text1重置为空字符串,之前循环中拼接的内容会被完全清空。只有最后一轮循环(遍历到字符m时)的赋值和拼接操作会被保留,所以最终只返回mmm。 - 字符串是Python中的不可变类型,你每次执行
text1 += i*3本质是生成了新的字符串对象,而不是修改原有字符串。如果不在循环外提前初始化用来存储结果的变量,每次循环都会重置存储容器,无法累计所有字符的处理结果。
修正后的代码
def paper_doll(text): # 仅在循环开始前执行一次初始化操作 text1 = '' for i in text: text1 += i*3 return text1 print(paper_doll('tom')) # 输出结果:tttooommm
内容的提问来源于stack exchange,提问作者shubhang kulkarni
相关产品推荐
相关产品推荐

