簡體   English   中英

Python錯誤:行繼續符后出現意外字符

[英]Python Error: Unexpected character after line continuation character

我正在嘗試創建一個數據框來存儲reddit數據:

topics_dict = { "title":[],\
            "score":[],\
            "id":[], "url":[],\ -> Error 
            "comms_num": [],\
            "created": [],\
            "body":[]}

在行繼續反斜杠和換行符之間包含任何內容是非法的。 1 (有關詳細信息,請參見顯式行連接 。)

通常,此問題非常明顯:

>>> 'abc' \stuff
    'abc' \stuff
                ^
SyntaxError: unexpected character after line continuation character

…但是,即使您擁有的全部都是空白,即使非法也很難看:

>>> 'abc' \ 
    'abc' \
            ^
SyntaxError: unexpected character after line continuation character

如果在同一源中混合使用Windows \\r\\n和Unix \\n換行符,情況可能更糟。 然后,您可以在反斜杠后面緊跟一個\\r\\n ,看起來很不錯-但是\\r被視為非法空格,而不是換行符的一部分,因為它將腳本視為\\n終止。 2

一位體面的編輯人員將使這些問題難以創建,易於發現或同時出現。 出於這些目的,除Notepad和TextEdit之外,幾乎所有其他編輯器都被認為是“不錯的”,包括針對每個平台的許多免費工具。


解決方案是刪除\\之后的所有空格。

或者,更好的是,避免在不需要時使用反斜杠連續(因為您不在這里),因為{}[]()任何表達式都會自動繼續,而無需反斜杠。 (有關詳細信息,請參見隱式行連接 ,但是它幾乎總是可以按您期望的那樣工作。)


從技術上講,我不認為反斜杠后面跟換行符不是換行符。 因此,實際錯誤只是反斜杠本身就是無效的令牌。 但是,如果是這樣,令牌生成器通過在此處提供更易於理解的錯誤消息而變得很好,所以我們不要抱怨……

2.我相信從2.6左右或3.0左右開始,這個說法可能不再正確。 請參閱物理線 但是,使用一致的結尾比希望Python正確猜出您要做什么的更好。

為什么不使用:

topics_dict = { "title":[],
            "score":[],
            "id":[],
            "url":[], 
            "comms_num": [],
            "created": [],
            "body":[]}

並刪除\\它的作用完全相同。

這對於字典是完全有效的,並且不受字符串等新行的影響(只要縮進正確即可)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM