IndexError:列表索引超出范围

这是我的第一篇文章,请耐心等待。所以我已经用Python编写了大约一个月的代码,我并不是很聪明,所以我被难住了。该系统是一个基本的登录(A级工作)的"功绩系统",但名单不能通过第一个用户在班级?
代码:

选择 | 换行 | 行号
  1. def findStudent(username):
  2.     for i in range(len(students)):
  3.         if students[i][0] == username:
  4.             return i
  5.     return -1

如果我含糊其辞,很抱歉,如果有任何进一步的问题,请随意提问
提前谢谢你,
边缘

# 回答1


好的,复制/粘贴弄乱了缩进,尝试#2:
Def findStudents(用户名):
_对于范围内的i(1,len(学生)):
_如果学生[i][0]==用户名:
_返回
_返回-1
# 回答2


艾德,
当您使用代码标记时,缩进显示正确。
是什么
学生
?从您的代码中,我希望它是一个列表列表。如果您使用
范围(1,len(学生))
,您将始终跳过第一个元素(列表的第一个元素始终位于索引0处)。如果
学生
为空,则会出现IndexError。
# 回答3


你能发布这个错误吗?也许还有一个代码失败的简单例子。
# 回答4


说得好,BVDET。
如果您添加这样的一行:

选择 | 换行 | 行号
  1. if len(student[i])==0: continue

在for语句之后和if语句之前,您将能够跳过空记录。当然,最好不要有空的记录,但这取决于事情是如何建立的。
另一件很常见的事情是为学生设置类对象,而不是列表。列表很笨拙,因为您需要跟踪每个条目对应的内容,因此很容易出错。学生对象可以包含所有变量,也可以使用特殊方法打印。

标签: python

添加新评论