簡體   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