我是一個Python新手,目前正在從事我的第一個項目。我的 elif 語句似乎在 IDLE 中起作用,但在 VSC 中不起作用為了演示,我有一個非常簡單的if語句:dud = 'You'if dud == 'You': print('You got the dud!')elif dud == 'Me': print('ohhhh, I made myself sad')else: pass當我將此代碼提交給IDLE時,它沒有問題。但是,當我將完全相同的代碼復制到VSC并在Python終端中運行時,我得到以下錯誤:PS C:\Users\William> & C:/Users/William/AppData/Local/Programs/Python/Python38-32/python.exePython 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 22:39:24) [MSC v.1916 32 bit (Intel)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> dud = 'You'>>> >>> if dud == 'you':... print('You got the dud!')...>>> elif dud == 'Me': File "<stdin>", line 1 elif dud == 'Me': ^SyntaxError: invalid syntax>>> print('ohhhh, I made myself sad') File "<stdin>", line 1 print('ohhhh, I made myself sad') ^IndentationError: unexpected indent>>> else: File "<stdin>", line 1 else: ^SyntaxError: invalid syntax>>> pass File "<stdin>", line 1 pass ^IndentationError: unexpected indent>>>當然,我已經嘗試了各種不同類型的格式,但我無法讓它工作。如果我刪除elif部分,它工作正常,所以我覺得我一定錯過了一些基本的東西。任何幫助都會得到極大的贊賞!編輯:越來越奇怪的行為使我相信這在某種程度上是Visual Studio的問題:在“Python交互式窗口”中運行代碼=成功全新啟動VSC并使用“在終端中運行python文件”=成功的“在終端中運行選擇/行”=在終端已經運行后運行“在終端中運行python文件”上遇到的錯誤=上面遇到的錯誤
2 回答

白板的微信
TA貢獻1883條經驗 獲得超3個贊
根據終端片段和屏幕截圖,VSC 實際運行的內容等效于此:
dud = 'You'
if dud == 'You':
print('You got the dud!')
elif dud == 'Me':
print('ohhhh, I made myself sad')
else:
pass
問題是 在第二行換行符之后。這讓Python認為if語句已經完成了,所以當它看到后面的所有內容時,它就會出錯。print('You got the dud!')elif
但問題的根源尚不清楚。

飲歌長嘯
TA貢獻1951條經驗 獲得超3個贊
通知。。。
>>> elif
您已啟動新語句并結束 if 語句
elif <conditional>
它本身是無效的,因此后面的每一行都是自己解釋的。
我建議使用IPython而不是常規的python REPL,或者使用JupyterLab。
添加回答
舉報
0/150
提交
取消