使用时除了关键字之外的语法错

时间:2014-06-20 16:16:08

标签: python

我是Python应用程序开发的新手。我知道Python异常,但当我使用except关键字时,它会显示SyntaxError。我的代码是

number = 1
try:
if(number == 1):
except ValueError:
print "yay"
else:

print "sucks"

当我使用此代码时,我在添加except关键字时会出现语法错误。由于我是Python的新手,我不知道为什么会这样。我正在使用Python 2.7。

3 个答案:

答案 0 :(得分:6)

number = 1
try:
    if(number == 1):
        print 'yay'
    else: 
        print 'sucks'
except ValueError:
    print 'Oops, something went wrong'

按照这种结构,你将成为金色的小马男孩。

答案 1 :(得分:5)

你不能混淆那样的Python语句。

try ... except一个复合语句;包含的两个块中的每一个(对于tryexcept)都需要是它们自己的完全独立的语句。 if ... else ... 也是复合语句,因此必须在tryexcept块中完全 ,或完全在它之外。

这样可行:

number = 1
try:
    if number == 1:
        print("yay")
    else:
        print("sucks")
except ValueError:
    pass

因为现在整个if .. else都位于try区块内。

不是你需要来处理ValueError这里,代码块中没有任何东西可以抛出异常。

从评论中可以清楚地看到,您使用的是Python 3(和IDLE),因此您希望将print()用作函数。

答案 2 :(得分:0)

在Python 3.0中,print成为一个函数,您需要为其他函数包含括号。所以 print var变为print(var)

由于您使用的是Python3,请尝试以下操作:

number = 1
try:
    if (number == 1):
         print ("yay")
    else:
        print ("other opts")
except ValueError:
     print ("Something went wrong")