繁体   English   中英

在 python SyntaxError: EOL 中扫描字符串文字

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM