关于Python反斜杠的那些事

关于Python反斜杠的那些事

今天一位博友评论问到了关于反斜杠的问题,在此写篇小短文总结一下,如有疏漏或错误,欢迎和感谢各位前辈和同学指出,更具体的关于转义字符的知识详见于Python入门基础语法1。好啦,打起精神,下面我们开始进入正题。

首荐原字符
原字符就是希望字符串中的转义字符不起作用,他可以减轻我们的劳动量:可以少写很多反斜线(转义符号)。在Python入门基础语法1中写道:使用原字符最后一个字符不能是反斜杠\, 但是代码中有个结尾是两个\,其实它并不是不能用反斜线结尾,只是不能以奇数个反斜线(\)结尾;
使用原字符可以少写很多反斜线见如下代码;

# 开发时间:2020/11/2 13:10
# 字符串
a = ('E:\\inventor\\安装包\\3rdParty')

# 原字符
b = (r'E:\inventor\安装包\3rdParty')

print(a)
print(b)

运行结果如下:

E:\Python\python.exe E:/py/CSDN博客/关于反斜线那些事.py
E:\inventor\安装包\3rdParty
E:\inventor\安装包\3rdParty

Process finished with exit code 0

—注意—

可能有人发下如果只输入一个(\)的输出可能结果是一样的,但是我们要理解这个概念:(\)是转义字符 (\\)表示一个普通的\号…你可能会遇到输入一个(\)也没有报错,也是自己想要的输出结果,那其实是因为没有遇到有意义的转义字母,具体见如下代码:

# 这两个运行结果是一样的是因为\w不是一个有效的转义字符
print('http:\www.baidu.com')  # 只有一个\,\是转义字符  \w不是一个有效的转义字符,所以作为普通字符输出了
print('http:\\www.baidu.com')  # \\表示一个普通的\号

# 当转义字符\后面的是有意义的转义功能的时候就会出现问题
print('E:\3rdParty')  # E:rdParty输出结果和想要的不一样
print('E:\n.txt')  # 这种就是转义字符后面遇到了有意义的转移功能  \n 就是换行的意思
print('E:\\3rdParty')

运行结果如下:

E:\Python\python.exe E:/py/CSDN博客/关于反斜线那些事.py
http:\www.baidu.com
http:\www.baidu.com
E:rdParty
E:
.txt
E:\3rdParty

Process finished with exit code 0

这也就是为什么比较推荐原字符了,不仅可以减少工作量,还可以避免忘记输 (\\)而报错了,详见下述代码(可与上述对比):

print(r'http:\www.baidu.com')
print(r'E:\3rdParty')
print(r'E:\n.txt')

运行结果如下:

E:\Python\python.exe E:/py/CSDN博客/关于反斜线那些事.py
http:\www.baidu.com
E:\3rdParty
E:\n.txt

Process finished with exit code 0

对于路径的表达,\还是/
在Python中输出路径的时候,我们有三种方法: 【直接使用转义字符\\】、【使用原字符】 【使用/】具体代码如下:

print('E:\\inventor\\安装包\\3rdParty')  # \\表示一个普通的\号,第一个\是转义字符
print(r'E:\inventor\安装包\3rdParty')  # 原字符就是希望字符串中的转义字符不起作用
print('E:/inventor/安装包/3rdParty')  # 直接用正斜杠(/)表示路径,没有转义的误解
# Windows中,正反斜杠二者皆可表示路径,但是默认的是\做分隔符,如"C:\Windows\Python"。

运行结果如下:

E:\inventor\安装包\3rdParty
E:\inventor\安装包\3rdParty
E:/inventor/安装包/3rdParty

Process finished with exit code 0

好啦,暂时想到和整理的就这么多啦,可能不太完整,有些地方可能也有些纰漏,还望各位多多指教。 【十分感谢各位支持我的前辈和同学,一起学习和进步吧】ღ( ´・ᴗ・` )

猜你喜欢

转载自blog.csdn.net/qq_45227014/article/details/109446952