2016-09-18 132 views
-9

我正在寫一個計算器,但由於某種原因,它告訴我的我的ELIF語法是錯誤的? (使用Python 3.5)Screenshot Of the errorPython:Elif語句很奇怪

(我使用的是與蟒蛇來到了閒置的IDE)

+0

在'if..elif'之外寫'def'即函數 –

+3

暴露問題的代碼應該包含在問題本身中。我們儘量避免鏈接到外部資源,因爲它們可能會過期。 –

+1

請勿使用'eval'將字符串轉換爲['float'](https://docs.python.org/3.5/library/functions.html#float)或['int'](https: //docs.python.org/3.5/library/functions.html#int)。閱讀「[評估真的很危險](http://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html)」,看看如果你繼續使用邪惡'eval'會發生什麼。 – Matthias

回答

1

要定義if塊和elif塊之間的功能。你不能這樣做。

這種失敗:

if condition: 
    pass 
def f(): 
    pass 
elif condition: 
    pass 

解釋器不知道哪個if聲明elif屬於,因爲馬上elif上面是一個函數定義。就拿函數定義了從if..elif結構的中間:

def f(): 
    pass 
if condition: 
    pass 
elif condition: 
    pass 
0

不要使用IDLE,使用像崇高或記事本+ +和CLI親編輯器來運行程序。

而你的elif沒有縮進級別。應該是這樣的:

if a: 
    pass 
elif b: 
    pass 

如果你這樣做:

if a: 
    pass 
def func(): 
    pass 
elif b: 
    pass 

它會失敗。定義程序頂部的所有功能以及最後的程序主體。

+0

對於這個(或者對於Python來說),Notepad ++如何比IDLE更好?我用這兩個,順便說一句,但不會考慮使用Python的Notepad ++。 –

+0

阿好,謝謝大家 –