我试图这样做,如果用户输入任何字母,它都不会给出任何错误。它只会重新启动程序。
x = int(input())
try:
if x == (a, b, c): # Entering letters in the x integer will restart the program.
displayStart()
return
print('')
我有这个,在我输入这个"尝试:"之后,底部的print语句变成了无效的语法。声明。有关如何修复它的任何建议吗?
答案 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;这将永远不会打印"线,而不是"例外"线
当然还有更多内容,如finally
和else
,但这个try:
except:
示例应足以让您入门