python 中 \n 和转义r的作用和\r的实际应用

时间:2021-07-26 08:58:46

 

我们先看看这张转义字符图:

python 中 \n 和转义r的作用和\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

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

 1 # __author__ = "Gao Zhengjie"
 2 # __date__ = "2018/1/5"
 3 # __Desc__ = 在一行中不断刷新倒计时
 4 
 5 import time
 6 
 7 count_down = 10  # 设置倒计时时间,单位:秒
 8 for i in range(count_down, 0, -1):
 9     msg = u"\r系统将在 " + str(i) + "秒 内自动退出"
10     print(msg, end="")
11     time.sleep(1)
12 end_msg = "结束" + "  "*(len(msg)-len("结束"))  # 如果单纯只用“结束”二字,无法完全覆盖之前的内容
13 print(u"\r"+end_msg)

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

 1 # __author__ = "Gao Zhengjie"
 2 # __date__ = "2018/1/5"
 3 # __Desc__ = 在一行中不断刷新转圈
 4 
 5 import time
 6 
 7 count_down = 10  # 设置倒计时时间,单位:秒
 8 interval = 0.25  # 设置屏幕刷新的间隔时间,单位:秒
 9 for i in range(0, int(count_down/interval)):
10     ch_list = ["\\", "|", "/", "-"]
11     index = i % 4
12     msg = "\r程序运行中 " + ch_list[index]
13     print(msg, end="")
14     time.sleep(interval)
15 print(u"\r结束" + "  "*len(msg))

 

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

 1 # __author__ = "Gao Zhengjie"
 2 # __date__ = "2018/1/5"
 3 # __Desc__ = 在命令行中实现进度条功能
 4 
 5 import time
 6 
 7 count_down = 10  # 设置倒计时时间,单位:秒
 8 interval = 1  # 设置屏幕刷新的间隔时间,单位:秒
 9 for i in range(0, int(count_down/interval)+1):
10     print("\r"+""*i+" "+str(i*10)+"%", end="")
11     time.sleep(interval)
12 print("\n加载完毕")

 

作者:高正杰
链接:https://www.jianshu.com/p/eb5c23cd6e34
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。