我正在写这段代码,如果我放的人得分高,我会说。
当我在列表中输入例如“Thor”时,它工作正常,但程序没有捕获错误,如果名称不在,则不打印“没有他们没有最高分”清单。
Names = ['Ben', 'Thor', 'Zoe', 'Kate']
Max = 4
Current = 1
Found = False
PlayerName = input("What player are you looking for? ")
while (Found == False) and (Current <= Max):
if Names[Current] == PlayerName:
Found = True
else:
Current = Current + 1
if Found == True:
print("Yes, they have a top Score")
else:
print("No, They do not have a top score")
因此,如果以詹姆斯为例,它会输入此错误
if Names[Current] == PlayerName:
IndexError: list index out of range"
我该如何解决这个问题?感谢。
答案 0 :(得分:3)
您从1
开始创建数组索引,而在Python,C,C ++和许多语言中,数组索引(如列表)从0
开始,到ArrayLength - 1
结束。将你的循环改为:
while (Found == False) and (Current < Max):
↑
答案 1 :(得分:0)
Max
应该是3而不是4。
不要忘记数组是0索引的,所以Names[3]
指的是第4个元素(和最后一个)
从0 Current=0