尝试if Statement打破我的print str

时间:2014-10-23 16:28:27

标签: python python-3.x printing try-catch

我试图这样做,如果用户输入任何字母,它都不会给出任何错误。它只会重新启动程序。

x = int(input())
try:
    if x == (a, b, c): # Entering letters in the x integer will restart the program.
        displayStart()
        return
print('')      

我有这个,在我输入这个"尝试:"之后,底部的print语句变成了无效的语法。声明。有关如何修复它的任何建议吗?

3 个答案:

答案 0 :(得分:0)

try套件需要有except和/或finally子句。你没有。 e.g。

try:
    do_something()
except SomeExceptionName:
    do_something_because_some_exception_name_was_raised_in_do_something()

或者:

try:
    do_something()
finally:
    do_something_even_if_exception_was_raised()     

您还可以查看python tutorial

如果你考虑一下,你的try套房应该做什么?如果引发异常,如果您无法处理(通过except)或执行清理操作(通过finally),会发生什么情况与正常情况不同?


来自python grammer specification

try_stmt: ('try' ':' suite
           ((except_clause ':' suite)+
            ['else' ':' suite]
            ['finally' ':' suite] |
           'finally' ':' suite))

答案 1 :(得分:0)

您需要在try语句中添加except部分。像这样:

x = int(input())
try:
    if x == (a, b, c):
        displayStart()
        return
except Exception as e:
    print('An exception occurred: ', e)

print('')

尝试需要有相应的除外。 作为一个注释,像我一样捕获所有异常并不是一个很好的做法。而不是Exception,通常您会指定您期望的特定异常。例如,如果我期待ValueError,我会做到:

try:
    ...
except ValueError as ve:
    print('A Value Error occurred: ', ve)

此外,您通常希望尽可能少地将代码放在try-except块中。

答案 2 :(得分:0)

这是一个try语句的例子:

try:
   print("this will actually print, because its trying to execute the statements in the tryblock")
   assert(1==0) #a blatently false statement that will throw exception
   print("This will never print, because once it gets to the assert statement, it will throw an exception")
except:
   print("after exception this is printed , because the assert line threw an exception")

如果断言状态为assert(1==1)它将永远不会抛出异常,那么它将打印出#34;这将永远不会打印"线,而不是"例外"线

当然还有更多内容,如finallyelse,但这个try: except:示例应足以让您入门