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