[英]In python SyntaxError: EOL while scanning string literal
我正在使用 python 3.5.1。 当我尝试这个时
print(r'\t\\\')
扫描字符串文字时出现错误:SyntaxError: EOL。 但是这个效果很好
print(r'\t\\')
任何人都可以解释一下吗?
首先,您正在逃避关闭'
,因此您在问题中提到的SyntaxError
被引发,因为您的字符串现在永远不会终止。 在第二个中,您正在转义最后的\\
因此'
不会被转义。 '\\\\'
是一个字面反斜杠而不是转义符,这就是为什么在第二个版本中没有转义'
,以及为什么第一个版本末尾的'\\'
没有被转义。
不知何故,我错过了你在谈论原始字符串。 不过,从3.5 文档中看到:
即使在原始文字中,引号也可以用反斜杠转义,但反斜杠仍保留在结果中; 例如,r"\\"" 是由两个字符组成的有效字符串文字:反斜杠和双引号;r"\\" 不是有效的字符串文字(即使原始字符串也不能以奇数个反斜杠结尾)。具体来说,原始文字不能以单个反斜杠结尾(因为反斜杠会转义后面的引号字符)。还要注意,单个反斜杠后跟换行符被解释为这两个字符作为文字的一部分,而不是作为行的延续.
此代码在扫描字符串文字时显示 SyntaxError: EOL。
import cv2
import numpy as np
img = cv2.imread('88.png', 0)
cv2.imshow('image\', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
File "<ipython-input-2-df946a5b3e41>", line 18
cv2.imshow('image\', res)
^
SyntaxError: EOL while scanning string literal
但是当我从行中删除“\\”
cv2.imshow('image\', img)
我的代码运行成功。
我的无错误代码如下:
import cv2
import numpy as np
img = cv2.imread('88.png', 0)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.