转义符\
先上目录,1. 转义符的作用及常见转义符介绍
2. 转义符\r的使用(实例介绍)
转义符\r和Python中的end函数的连用
3. 转义符\n的使用(实例介绍)
4. 实例—单行展示文本进度条
1. 转义符的作用及常见转义符介绍
表达特定字符的本意,如双引号前有转义符,则不是字符串的表示方法了,而就是双引号
转义符可以形成一些组合,表达一些不可打印的含义
\b回退(使当前光标向前回退一个位置)
\n换行(光标移动到下行首)
\r回车(光标移动到本行首)
需要注意的是,IDLE本身是一个编写程序的开发环境,它并不是程序运行的主要环境。由于IDLE被设定为开发环境,为了保证其中参数的运行的一个效果,会屏蔽掉\r这个功能。即\r在IDLE中没有特定功能。
3.下面是转义符在pycharm中实现的一些实例:
2.实例:转义符\r的使用test1:
for i in range(5):
print(i) #print()函数默认输出一个结果后就换行
print("\r你好!我是Python!") #在还未输出字符串之前,将光标移动到本行首,和不加\r结果一样
print("你好!\r我是Python!") #在输出"你好!"之后,再将\r移至本行首,这样子新输出的"我是Python!"将覆盖原来的"你好!"
print("你好!我是Python!\r") #在输出完整的字符串"你好!我是Python!"之后,这时已经发生了换行,再使用\r只是下一行移至行首
>>输出
0
1
2
3
4
你好!我是Python!
我是Python!
你好!我是Python!
转义符\r和Python中的end函数的连用:end=””表示输出结果后不换行,比如在一些循环语句,连续输出不换行的结果;
简单来说,就是如果你希望在输出的字符串后增加什么信息,你就在end参数中增加;如果你不希望增加换行,那么就将end参数赋值为空字符串。test1:
for i in range(3):
print(i) #默认换行
>>输出
0
1
2test2:
for i in range(3):
print(i,end="") # #输出一个结果后不换行
>>输出
012test3:
for i in range(3):
print(i,end="*") #输出一个结果后不换行,并以*结尾
>>输出
0*1*2*test4:\r和end函数的连用
for i in range(3):
print(i,end="\r*")
#首先注意:\r是个字符串,要放在引号里;
#还要注意:"i\r"这样表达是错误的,i是个变量,不用加"" ,要把\r在end变量中加
#带end就表示输出字符串后不换行,
#输出"0"后,光标移到本行行首,再输出*,
#然后输出"1"后,此时是"*1",然后光标移到本行行首,再输出*,
#然后输出"2"后,此时是"*2",然后光标移到本行行首,再输出*,
>>输出
*test5:
for i in range(3):
print(i,end="*\r") #输出1*,光标转到本行行首,覆盖前面内容,在输出2*
>>输出
2*
3. 实例:转义符\n的使用——注意观察不同例子中\n的位置test1:
scale=10
print("\n执行结束".center(scale+2,"-"))
#"执行结束"被当做一个字符串,利用center函数变成"---执行结束---"这样子,因为\n是
#在"执行结束"的前面,所以先输出---,然后遇到\n,换行输出执行结束---
>>输出
---
执行结束----test2:
scale=10
print("\n"+"执行结束".center(scale+2,"-"))
#"执行结束"被当做一个字符串,利用center函数变成"---执行结束---"这样子,
# 然后利用+进行字符串联结,变成"\n---执行结束---"这样,从\n开始 执行,即先换行在输出字符串
>>输出
----执行结束----
4. 实例:单行展示文本进度条
做一个文本进度条,每次有进度不换行,只是不断地进行本行刷新:用后打印的字符覆盖之前的字符;为了实现单行动态刷新,就需要要求我们的程序在输出某一个字符的字符串的时候,不能够换行到下一行,因为换到下一行后,之前的信息不能够被修改。
使用转义符 \r(光标移动到本行首)
import time
scale=10
print("执行开始".center(scale+2,"-"))
start=time.perf_counter()
for i in range(scale+1):
a="*"*i
b="."*(scale-i)
c=(i/scale)*100
dur=start=time.perf_counter()-start
print("\r{:<3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end="")
# 含义:我要输出一个字符串,但是输出之前呢,你要把光标放到行的行首;
# 然后你再输出,输出之后呢你也不要换行;(考虑界面太小,把解释分两行写啦)
# 下一次循环再输出的时候光标还要回到行首
time.sleep(0.1)
print("\n"+"执行结束".center(scale+2,"-"))
>>输出
----执行开始----
100%[**********->]0.50s
----执行结束----
好啦,如果以后有新的发现会继续补充~~
各位看到的小伙伴,如果觉得有用,可不可以点个赞,蟹蟹蟹蟹~你们的喜欢是我坚持的动力!!