人生苦短,我用python——忠实的python转义符‘\’

转义字符是什么?

按照通常定义来说,转义字符是让以它为首的字符串“变脸”的符号。’\’ 是常用的转义字符,它会和后面字符结合起来转义成具有其他意义的字符。

比如,“n”本来是一个乖巧的字符,前面加上转义字符“\”变成"\n"之后,在程序中就另有意义:换行。

转义字符‘\’应用

“\n”是常见的转义字符应用,而双引号字符(")在程序语言中作为字符串的分界,若需要在字符串内引入双引号字符,则用反斜杠字符“\”加到(“)前面进行处理。
如在python3中:

print ("Nancy said "Hello World!" to the crowd.")

会报错:

print (“Nancy said “Hello World!” to the crowd.”)
SyntaxError: invalid syntax

需要加上转义字符\让(")失去 本身字符串分界点的意义:

print ("Nancy said \"Hello World!\" to the crowd.")

输出:Nancy said “Hello World!” to the crowd.

可能在“路径声明”中踩转义字符的坑

转义符作为python解释器已经规定好了的解析字符,也会在coding中不经意间闪现出来,打个措手不及。不管你是不是有意用到转义字符,它就在那里,不离不弃。
如运行下面的代码会报错:

from scipy.misc import imread,imsave,imresize
img = imread("C:\Users\Dell\Pictures\1.jpg")
print (img.dtype,img.shape)

SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UXXXXXXXX escape

windows系统中用(\)分隔路径,而解释器却认为“C:\Users\Dell\Pictures\1.jpg”中的“\”表示转义,所以会报错。

在路径声明中排除’\'的影响

如何让‘\’在字符串中只表示一个简单字符呢?

在它的基础上一层转义:也就是用(\\) 表示字符"\";或者想办法告诉解释器“下面的字符串不要转义”;最后一种更简单的方法,用’/'分隔路径。

1、使用双反斜杠:\\

img = imread("C:\\Users\\Dell\\Pictures\\1.jpg")

2、显式声明字符串不进行转义

img = imread(r"C:\Users\Dell\Pictures\1.jpg")

3、直接用‘/’分隔路径,这样的路径在windows和linux下都能使用(推荐)。

img = imread(r"C:/Users/Dell/Pictures/1.jpg")

以上三种方法参考Python 中 ‘unicodeescape’ codec can’t decode bytes in position XXX: trun错误解决方案

猜你喜欢

转载自blog.csdn.net/gulaixiangjuejue/article/details/84785731