2016-09-18 68 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

阿好,谢谢大家 –