Python中 ‘\r‘ 的实际应用

####1. 知识储备
\r 表示将光标的位置回退到本行的开头位置
\b 表示将光标的位置回退一位

python 语言中, 使用 print 打印输出时,默认是会进行换行的。如何让其不换行呢?

  • python 2.x 中的语法是在 print 语句的末尾添加逗号,例如 print x, ;或者使用 sys.stdout.write() 对标准输出进行重定向,如此文所示 https://segmentfault.com/q/1010000002810865 。
  • python 3.x 中,print 成为了一个独立的函数,有一个 end 参数,可以指定输出的结束符,默认是 \n

本文的实验环境是 Python 3.6.1 |Anaconda 4.4.0 (64-bit),Win10

####2. 在命令行中实现倒计时功能

# __author__ = "Gao Zhengjie"
# __date__ = "2018/1/5"
# __Desc__ = 在一行中不断刷新倒计时

import time

count_down = 10  # 设置倒计时时间,单位:秒
for i in range(count_down, 0, -1):
    msg = u"\r系统将在 " + str(i) + "秒 内自动退出"
    print(msg, end="")
    time.sleep(1)
end_msg = "结束" + "  "*(len(msg)-len("结束"))  # 如果单纯只用“结束”二字,无法完全覆盖之前的内容
print(u"\r"+end_msg)

####3. 在命令行中实现“转圈”功能

# __author__ = "Gao Zhengjie"
# __date__ = "2018/1/5"
# __Desc__ = 在一行中不断刷新转圈

import time

count_down = 10  # 设置倒计时时间,单位:秒
interval = 0.25  # 设置屏幕刷新的间隔时间,单位:秒
for i in range(0, int(count_down/interval)):
    ch_list = ["\\", "|", "/", "-"]
    index = i % 4
    msg = "\r程序运行中 " + ch_list[index]
    print(msg, end="")
    time.sleep(interval)
print(u"\r结束" + "  "*len(msg))

####4. 在命令行中实现进度条功能

# __author__ = "Gao Zhengjie"
# __date__ = "2018/1/5"
# __Desc__ = 在命令行中实现进度条功能

import time

count_down = 10  # 设置倒计时时间,单位:秒
interval = 1  # 设置屏幕刷新的间隔时间,单位:秒
for i in range(0, int(count_down/interval)+1):
    print("\r"+"▇"*i+" "+str(i*10)+"%", end="")
    time.sleep(interval)
print("\n加载完毕")

注:方块可以从输入法的特殊符号中进行输入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风醉雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值