为何代码需用line = line + '-'而非line = '-'?CODE1/CODE2输出差异解惑
问题解答
先看两段代码的核心差异:
CODE 1(可输出5个短横线)
name = 'World' line = '' for char in name: line = line + '-' # 每次循环把短横线累加到line上 print(name) print(line)
CODE 2(仅输出1个短横线)
name = 'World' line = '' for char in name: line = '-' # 每次循环都把line重置为单个短横线 print(name) print(line)
为什么CODE2达不到预期?
CODE1里的line = line + '-'是累加操作:
- 第一次循环:line从空字符串变成
'' + '-' = '-' - 第二次循环:line变成
'-' + '-' = '--' - 以此类推,循环5次后,line就变成了5个短横线的字符串
'-----'
而CODE2里的line = '-'是直接赋值覆盖:
- 不管循环多少次,每次都会把line重新设置为单个
'-',之前的内容完全被替换掉。 - 循环5次后,line最终还是单个
'-',自然输出不了5个短横线的结果。
如果想让CODE2达到预期,只需要把赋值语句改成累加形式,或者更简洁的写法:line += '-'(和line = line + '-'效果完全一致)。
内容的提问来源于stack exchange,提问作者pythonlearner7
相关产品推荐
相关产品推荐

