2 回答

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
歡迎來到 SO 和 python
首先,退一步了解 try/except 塊的作用。
try/是一個(gè)結(jié)構(gòu),其中 Python 將“嘗試”執(zhí)行代碼塊并通過將 Exception 的類型與子句except指定的錯(cuò)誤類型相匹配來捕獲任何異常(或意外錯(cuò)誤)。except
IndexError當(dāng)您嘗試索引支持索引的對(duì)象(例如 a list)并且您指定的索引超出索引范圍時(shí)會(huì)發(fā)生 An ,例如:
my_list = ["a", "b", "c"]
print(mylist[0])
# will print "a"
print(my_list[4])
# with raise in IndexError as index 4 doesn't exist.
在您的示例中,在傳遞非整數(shù)參數(shù)值時(shí)ValueError調(diào)用 to 引發(fā)。int因?yàn)槟銢]有索引任何東西IndexError都沒有提出。
至于將 if/else 放在 try 塊之內(nèi)還是之外。通過將其放在 try 塊中,可以捕獲 if/else 塊中引發(fā)的任何異常。在這兩種情況下,if/else 塊的行為保持不變。

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
對(duì)于索引錯(cuò)誤,您需要索引一個(gè)列表
a = [1 , 2, 3] print(a[5])
通過在 try 中放置語句,您可以捕獲程序中的異常并可以自己處理問題,以便程序繼續(xù)運(yùn)行。
在嘗試之外會(huì)導(dǎo)致異常錯(cuò)誤并且程序中止。
添加回答
舉報(bào)