请帮忙。我得到这个错误:“SyntaxError:解析时意外的EOF”

问题描述:

try: 
    f1=int(input("enter first digit")) 
    f2=int(input("enter second digit")) 

    answ=(f1/f2) 
    print (answ) 
except ZeroDivisionError: 
+1

我没有看到在这里downvotes的理由。我认为这个特定的语法错误是神秘的,因为它可能是由许多原因造成的。只需查看[documentation](https://docs.python.org/2/tutorial/errors.html#handling-exceptions)来处理异常,这可能是不够的。虽然在那里提到了“SomeError:pass除外”的语法,但没有明确指出块不能留空,这对于初学者来说可能会令人费解。 – Reti43

你不能有一个except线后面没有任何东西。你必须有一些代码,即使它没有做任何事情。

try: 
    f1=int(input("enter first digit")) 
    f2=int(input("enter second digit")) 

    answ=(f1/f2) 
    print (answ) 
except ZeroDivisionError: 
    pass 
+0

非常感谢你 – hunk

+0

@hunk'pass'用于这种情况,你必须把某些东西放在一个块中,但是你想要稍后实现它,或者把它留空。 – Reti43

在Python中,当您编写':'时,您将启动一个代码块。而且,按照语法,您不能将块保留为空。

所以,你必须完成block.e.g。

try : 
    f1=int(input("enter first digit")) 
    f2=int(input("enter second digit")) 
    answ=(f1/f2) 
    print (answ) 
except ZeroDivisionError:: 
    print ("You can't divide by zero") 
+1

非常感谢你 – hunk

+0

第6行的语法错误。** :: **应该替换为**:** –