簡體   English   中英

為什么在 IF 語句后立即在 Python REPL 中收到無效語法錯誤?

[英]Why am I getting an invalid syntax error in Python REPL right after IF statement?

我認為這是完全正確的。

if False:
    print(1)
print(2)

但是,它在 Python REPL 中給我一個無效的語法錯誤。

為什么?

在此處輸入圖像描述

在 Python 3.6.5 (x64) 上,Windows 10 RS4

正如 user2357112 所指出的,這種行為在https://docs.python.org/3/tutorial/introduction.html#first-steps-towards-programming 中有解釋,

循環體是縮進的:縮進是 Python 對語句進行分組的方式。 在交互式提示下,您必須為每個縮進的行鍵入一個制表符或空格。 在實踐中,您將使用文本編輯器為 Python 准備更復雜的輸入; 所有體面的文本編輯器都有自動縮進功能。 當以交互方式輸入復合語句時,它后面必須跟一個空行以表示完成(因為解析器無法猜測您何時輸入了最后一行)。 請注意,基本塊中的每一行都必須縮進相同的數量。

REPL 一次只能讀取和評估一個語句。 您一次輸入了兩個語句。

這是可能的,因為 REPL 無法決定第三行是繼續if構造還是開始一個全新的語句。 它必須假設前者完全允許縮進塊。

在開始新的語句之前,您必須向 REPL 明確表示您之前的語句已完成。

錯誤的版本似乎是最有可能的,因為在錯誤中它顯示打印。 在較舊的 python 版本中,print 被用作 print"ok",我看到你的操作系統是 windows 所以你可以直接從https://python.org/下載 python3 祝你有美好的一天!

暫無
暫無

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

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