如果我有以下代码:
范围(10)内x的
:
打印x
我将得到
1
2.
等
我想做的不是打印换行符,而是替换上一个值并在同一行上用新值覆盖它
简单版本
一种方法是使用回车符('\r')返回到行首,而不前进到下一行
Python 3
范围(10)内x的
:
打印(x,end='\r')
打印()
Python2.7向前兼容
来自未来导入打印功能的
对于范围(10)内的x:
打印(x,end='\r')
打印()
Python 2.7
范围(10)内x的
:
打印“{}\r.”格式(x),
打印
Python 2.0-2.6
范围(10)内x的
:
打印“{0}\r.”格式(x),
打印
在后两种情况下(仅限Python 2),print语句末尾的逗号告诉它不要转到下一行。最后一条打印语句前进到下一行,这样您的提示就不会覆盖最终输出
线路清洗
如果不能保证新行文本不短于现有行,则只需添加一个“清除到行尾”转义序列,'\x1b[1K'('\x1b'=ESC):
范围(75)内x的
:
打印('*'*(75-x),x,end='\x1b[1K\r')
打印()