You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中print配合\r与end=''出现显示残留问题如何解决?

问题原因
  • 输出长度不固定:当时间数值为个位数时,输出的字符串长度比两位数时短1位,上一轮输出末尾的残留字符无法被新内容完全覆盖,就会出现多余的0等异常字符。
  • 多参数打印自动加空格:你使用print('\r', hours, ":", mins, ":", secs, end ='')这种多参数逗号分隔的写法时,\r和第一个参数hours之间会被print自动插入一个空格,导致行首出现冗余空格,进一步打乱输出长度。
修复方案

使用格式化字符串固定输出长度,统一让小时、分钟、秒都占2位,不足的话补前导0,同时避免多参数打印的自动空格问题,修改后的print语句如下:

print(f"\r{int(hours):02d}:{int(mins):02d}:{int(secs):02d}", end='')

如果使用的是Python3.5及更早的不支持f-string的版本,可以改用format写法:

print("\r{:02d}:{:02d}:{:02d}".format(int(hours), int(mins), int(secs)), end='')

修改后每次输出的长度固定为8个字符,\r会把光标移动到行首,新内容会完整覆盖上一轮的所有内容,不会再出现残留字符的问题。如果你不需要前导0的显示效果,也可以在输出末尾加2-3个空格覆盖残留内容,写法如下:

print(f"\r{hours}:{mins}:{secs}  ", end='')

内容的提问来源于stack exchange,提问作者Vicks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 13:27:05