python - 简单的Python程序-卡住了

标签 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")

因此,如果输入 James,则会输入此错误

if Names[Current] == PlayerName:
IndexError: list index out of range"

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

最佳答案

数组索引从 1 开始,而在 Python、C、C++ 和许多语言中,数组索引(例如列表)从 0 开始并以数组长度 - 1。将循环更改为:

while (Found == False) and (Current < Max):
                                    ↑

关于python - 简单的Python程序-卡住了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30557090/

相关文章:

Python 循环并创建单独的列表

java - 我可以使用 jython 将 python 库导入到 java 代码中吗?

Python:使用 zip() 将列表的 super 列表解压缩为单独的列表

java - 如何在java中将二维整数数组转换为图像?

arrays - 将整个数组从 int 转换为 double 以进行一些算术运算

python - 在 Python 中用字符串替换 jinja 变量的每个实例

python - Pandas group by 返回 NAN 进行应用 vs 变换函数

python - 从列表创建字典

Python - 如何始终将文档中找到的列表中的单词打印到另一个列表?

php - PHP 中增加十六进制值(小端?)