找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3300|回复: 3

[求助] print \r 无法实现返回行首重新打印的效果。

2

主题

4

帖子

4

积分

贫民

积分
4
zhuyuexin 发表于 2022-10-26 21:03:50 | 显示全部楼层 |阅读模式
各位大神,我这里真心求教。想实现原地刷新打印输出文本功能,看到网上有使用\r来返回行首,原地打印的方法,但是我这里无法实现。
代码如下,本想显示“绿灯,还有几秒”的效果,无法实现,我就极致简化了,取消了几秒的打印:
import time
while 1:
    for i in range(6):
        print('\r绿灯,还有',end='')
        time.sleep(1)


效果如下:
Python 3.7.5 (tags/v3.7.5:5c02a39a0b, Oct 14 2019, 23:09:19) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>
=================== RESTART: D:\0002个人学习\pythoncx\红绿灯纯代码3.py ===================

绿灯,还有绿灯,还有绿灯,还有绿灯,还有绿灯,还有


还请大神们耐心指教,真诚感谢!

回复

使用道具 举报

0

主题

1

帖子

1

积分

贫民

积分
1
sh2d 发表于 2022-10-30 13:31:15 | 显示全部楼层
\r 是回到当行的行首相当于会把前面的字符串删了,但\r后面的肯定不会动,
大致该这样print('绿灯,还有',end='\r')
回复 支持 反对

使用道具 举报

2

主题

4

帖子

4

积分

贫民

积分
4
zhuyuexin  楼主| 发表于 2022-11-1 11:21:01 | 显示全部楼层
sh2d 发表于 2022-10-30 13:31
\r 是回到当行的行首相当于会把前面的字符串删了,但\r后面的肯定不会动,
大致该这样print('绿灯,还有',e ...

非常感谢回复,试了一下,结果一样。
代码修改如下:import time
while 1:
    for i in range(6):
        print('绿灯,还有',end='\r')
        time.sleep(1)

运行结果如下:
Python 3.7.5 (tags/v3.7.5:5c02a39a0b, Oct 14 2019, 23:09:19) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>
================ RESTART: D:/0002个人学习/pythoncx/fanhuihangshou.py ===============
绿灯,还有绿灯,还有绿灯,还有绿灯,还有
回复 支持 反对

使用道具 举报

0

主题

1

帖子

1

积分

贫民

积分
1
tan_xiao 发表于 2022-12-25 16:17:26 | 显示全部楼层
zhuyuexin 发表于 2022-11-1 11:21
非常感谢回复,试了一下,结果一样。
代码修改如下:import time
while 1:

import time
for i in range(6, 0, -1):
    print(f'\r绿灯,还有{i}秒', end="")
    time.sleep(1)

这个是可行代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表