python3异常无效语法错误

时间:2016-10-08 17:49:48

标签: python exception

我最近开始学习python3,我正在尝试写一个例外。 我有这一行,这是一个单词列表。 我想将“创建”这个词与列表相匹配,有时它有时候不是。如果不存在,我会收到此错误:

Traceback (most recent call last):
File "sub_process.py", line 17, in <module>
if (line.index("create")):
ValueError: 'create' is not in list

我很好。这是预料之中的。所以我想如果我写了一个例外,脚本可以继续并继续做。所以我在下面是一个例外,它所做的一切都没有。抓住错误并继续。

line = line.split()

if line.index("create"):
    print("basd");
except ValueError:
    print("123");

但是每当我尝试编译这个时,我都会在“除外”时遇到语法错误,我不知道为什么。与我能找到的所有教程相比,它看起来非常正常。

4 个答案:

答案 0 :(得分:4)

您应该只使用index运算符,而不是使用in,它返回一个简单的布尔值:

if "create" in line:
    print("basd")
else:
    print("123")

这不会引发异常,因此不需要try / except。

答案 1 :(得分:1)

您需要在try声明之前添加if

line = line.split()
try: # added 'try'
    if line.index("create"):
        print("basd");
except ValueError:
    print("123");

另请注意,在语句结束时您不需要分号,并且在以这种方式使用分号时通常不赞成。

作为对@Rosemans解决方案的改变,你可以在一条线上完成所有这些:

print('basd') if "create" in line else print("123")

答案 2 :(得分:1)

if / except不是有效的构造。使用try / except:

line = line.split()

try:
    if line.index('create'):
        print('basd')

except ValueError:
    print("123")

或者,您可以完全避免异常和try / except:

line = line.split()

if 'create' in line:
    print('basd')

else:
    print("123")

答案 3 :(得分:0)

#use try block..
line = line.split()
try:
    if line.index("create"):
        print("basd")
except ValueError:
    print("123")