Python指令外部尝试:除了:

Python指令外部尝试:除了:,python,try-catch,Python,Try Catch,我在Try/Except块内有一行,但当出现异常时,将执行该块外的另一行。我在打电话,所以我只需要输入几行 try: total=total+int(number) except: print('Bad input') count = count + 1 当我输入一个数字时,计数按预期递增。如果输入字符,则会捕获异常,但计数仍会增加。我认为如果出现异常,只有try/except块中的行才会重复。如果只想在未引发异常的情况下增加计数,则需要使用try/except语句的else子

我在Try/Except块内有一行,但当出现异常时,将执行该块外的另一行。我在打电话,所以我只需要输入几行

try:
    total=total+int(number)
except:
    print('Bad input')
count = count + 1

当我输入一个数字时,计数按预期递增。如果输入字符,则会捕获异常,但计数仍会增加。我认为如果出现异常,只有try/except块中的行才会重复。

如果只想在未引发异常的情况下增加
计数,则需要使用
try/except
语句的
else
子句:

试一试。。。except语句有一个可选的else子句,当它出现时,必须在所有except子句之后。如果try子句没有引发异常,那么它对于必须执行的代码非常有用

从上面可以看到,我更改了bare except语句以捕获特定的异常类型
ValueError
,因为如果不能将其参数转换为
int
,将引发该异常类型。如果要捕获不同的异常,请更改
ValueError
,但不要使用裸露的
except
子句,因为它可以掩盖重要的异常


同样如注释中所述,
try/except
语句不会多次执行其主体。如果需要这种行为,则需要一个循环。

当您输入字符并引发异常时。行
count=count+1
仍然会被执行。因为
count=count+1
不在
else:
下,所以计数仍然会增加。
另外,要意识到try-except语句不会重复

Try except语句不会自动重复任何内容。如果你有一个
while
循环围绕着这个或什么,你的
while
循环将重复整个循环体。谢谢。我错误地认为try/except本身就像一个循环。新手犯的错误。这包含在while循环中,但我不想在手机上键入它。我不知道还有别的选择,谢谢。当我输入代码时,我发现我的原始帖子格式不正确。输入代码和保持缩进的正确步骤是什么?@Ali突出显示您希望缩进的所有代码。然后按编辑标题中的
{}
按钮,或使用快捷键
ctrl+k
try:
    total += int(number)
except ValueError:
    print('Bad input')
else:
    count += 1