我正在尝试编写一个函数来检查 values
索引是否存在。该函数检查 n
是否导致越界错误。我如何才能检查这个?
values = ["a", "b", "1"]
def check(n):
if values[n]:
print("value exists")
else:
print("value doesnt exist")
check(1)
check(4)
check(2)
答案 0 :(得分:0)
使用异常处理
def check(n):
try:
print(values[n])
except IndexError:
# Index Out of Bound
print("value doesnt exist")
答案 1 :(得分:0)
你不需要使用异常处理,最好避免它。
def check(n):
if n >= 0 and n < len(values):
print("value exists")
else:
print("value doesnt exist")
答案 2 :(得分:0)
在调用列表中的项目时,Python 将 1 作为列表的第 2 个,将 0 作为列表的第一个,将 3 作为列表的第 4 个,以此类推。翻译函数定义后的接下来的三行代码,“检查清单2,检查清单5,检查清单3”。项目不超过 3 个,因此 check(4) 会引发错误。调整 check(n) 的定义,如下所示:
values = ["a", "b", "1"]
def check(n):
try:
print(values[n], 'exists')
except:
print("value doesn\'t exist")
try 关键字只是测试它是否不会引发错误。如果是,则跳转到 except 关键字,执行该关键字。上面的代码指定了值项,逗号不会带来错误。再试一次,输出:
b exists
value doesn't exist
1 exists
但是要小心,如果您尝试为一个错误打印出一行字符串,不要只在应该输入的时候输入 (except:)(除了错误名称 :) 对于计划在程序中出现的每个唯一错误。它将只执行第一个,而不执行其余的。