except
-尝试的一部分 - 除非try
-part中的内容引发错误,否则仅运行。
一个例子是由零整除。当试图在python shell中运行它时,下面的代码会引发错误;
print(5/0)
您可以捕获此错误,并打印自己的消息,而不是打印自己的python shell。在这种情况下,ZeroDivisionError
是python将抛出的某种类型的错误。用下面的代码,python只会捕获这个错误,而不是其他的。
try:
print(5/0)
except ZeroDivisionError:
print("Cannot divide by zero")
如果你想捕获所有的错误,你只是简单地写except
而不是except zeroDivisionError
。
except
-block内的代码不会运行,因为在尝试运行try
-block内的内容时没有错误。 try-block内部发生的事情是简单地将一个输入分配给一个变量。此行没有任何错误,因此except
- 块不会运行。
有不同的方法来获得你想要的功能。您可能想重复一遍,输入需要是一个字符串,直到用户实际输入一个字符串。你可以用while
-loop来做到这一点。如果字符串转换为整数转换失败,则引发的特定错误是ValueError
。
isString = False
while not isString:
userInput = input("Enter here: ")
try:
int(userInput)
except ValueError:
# if string to integer fails, the input is a string
isString = True
else:
print("Please enter a string")
while循环以上,只要是isString
运行False
。首先我们尝试从字符串转换为整数。如果这会引发错误,则输入是一个字符串,因此我们将isString设置为True
,while循环将不再运行。如果转换成功,它意味着输入实际上是一个整数,因此else语句将运行,打印用户需要输入的字符串。
输入已经返回一个字符串 –
也许它有助于读为'尝试并继续,除非它拧紧做这个,而不是'。由于块中的所有内容都是字符串,因此不会出现问题。 –
percusse