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