简单的python程序 - 卡住了

时间:2015-05-31 11:53:32

标签: python list integer range

我正在写这段代码,如果我放的人得分高,我会说。

当我在列表中输入例如“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"

我该如何解决这个问题?感谢。

2 个答案:

答案 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

开始