python的常用转义字符如下表:

从中我们可以看到,\”,\’分别表示双引号·单引号,这便是符号 \ 的其他用法——把具有其功能的字符转化为单纯的字符,才能被python程序正确输出,例如:
在print话中完整内容时:
print(“小米的某个人说:”遥遥领先!”!”)
结果为:
print(“小米的某个人说:”遥遥领先!”!”)
^
SyntaxError: invalid character ‘!’ (U+FF01)
这是因为它们都是双引号,程序实际变成了:
输出 “小米的某个人说:” “!”
很明显,
遥遥领先被架空,必然导致错误。但有 \ 就不一样了:
print("小米的某个人说:\"遥遥领先!\"!")
结果正如预期:
小米的某个人说:"遥遥领先!"!
但在这里还可以:
print('小米的某个人说:"遥遥领先!"!')
结果也正确:
小米的某个人说:"遥遥领先!"!
这种单双引号混合在print函数中也很常见,但这并不意味着转义符 \ 没有用处,在输出文件地址时就起到关键作用,例如:
print("C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps\python.exe")
这是报错:
print("C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps\python.exe")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
这是因为 \ 字符把它右边的字母转义了,Python解释器误以为\U,\A,\L,\M,\W,\p 具有特殊作用,然而实际上这些字符在这里并没有起作用,所以报错,
要想改进,就必须让 \ 变成单纯的字符串,故我们可以再用一次 \ 把 \ 转义成字符串“\”,如下:
print("C:\\Users\\Administrator\\AppData\\Local\\Microsoft\\WindowsApps\\python.exe")
正确输出:C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps\python.exe
当然,如果代码输出文件地址格式不限的话,可以改成:
print("C:/Users/Administrator/AppData/Local/Microsoft/WindowsApps/python.exe")
输出:C:/Users/Administrator/AppData/Local/Microsoft/WindowsApps/python.exe
-------------------------------------------------------------------------------------------------------------------------------------------------------------
当然,这俩方法输入的地址python都能读取,但我们win系列操作系统只能读取以 \ 为连接符的地址信息,举例子:分别按键盘win r,在弹出的窗口中输入cmd,回车,会出现一个黑窗口,
再在黑窗口中输入 powershell ,再输入 pwd(此原理为powershell模式下可以运行pwd这个linux系统命令,功能是输出当前所在的文件位置),可以发现,输出的文件地址信息是 \ 为分隔符。
如果还不够有说服力,那么请继续输入 cd C:\users 并回车,在输入 pwd ,可以发现所在的文件地址位置发生变化(cd命令几乎所有的操作系统共有,都具有切换文件目录的功能),而
用 / 作分隔符时则直接报错:
PS C:\Users> cd :/user/
cd : 找不到路径“C:\Users\:\user\”,因为该路径不存在。
所在位置 行:1 字符: 1
+ cd :/user/
+ ~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Users\:\user\:String) [Set-Location], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
所以这又直接证明了操作系统只能读取以 \ 为分隔符的地址位置信息。
好了,今天就分享到这里吧!谢谢观看



暂无评论