循环输出结果
循环在一行上递减的输出一段字符,如图代码。预期的最终输出结果应为[->]s,但不明白为什么最终输出结果如图所示。希望能得到讲解。 \r 回车
将 \r 后面的内容移到字符串开头,并逐一替换开头部分的字符,直至将 \r 后面的内容完全替换完成。
他是逐个替换之前打印的内容,不是全部替换。
[->->->->->]s
[->->->->]s
[->->->]s
[->->]s
[->]s
这样逐级替换下来就是[->]s]s]s]s]s了
[->->->->->]s
[->->->->]s
[->->->]s
[->->]s
[->]s
没有问题呀,我按照你代码的打的,输入的结果是这个
可能是软件显示的问题? [->]s
我用pycharm输出结果是对的, 可能 vscode 抽风了 {:10_257:} \r只会逐一替换开头部分的字符,对后面的字符不会替换
它的替换过程是这样的:
[->->->->->]s
[->->->->]s]s
[->->->]s]s]s
[->->]s]s]s]s
[->]s]s]s]s]s
所以结果是[->]s]s]s]s]s
如果要实现你预期的效果话,可以这么写
import time
for i in range(5):
c = "->" * (5-i)
print('\r[{}s]'.format(c)+" "*(i+1),end="")
time.sleep(1)
页:
[1]