为什么我的程序不断抛出索引超出范围错误?

时间:2019-03-05 18:56:08

标签: python

我使用C#编程,之前曾使用python编程,但那是几年前的事,并且达到了非常基本的水平。我认识的某个人创建了以下代码,但该代码不断抛出超出范围错误的列表索引,我不知道为什么。该代码应该向用户询问用户名和密码,循环访问文件中的每一行,并检查用户名和密码是否与任何行中的用户名和密码匹配。这些文件将用户名和密码对存储在一行上,并在它们之间留有空格。不同的用户名和密码对放在单独的行上。

当输入的错误密码和/或用户名不在文件中时,代码将引发错误。

代码如下:

       file = open("user_details.txt","r")
       lines = file.readlines()
       file.close()
       while True:
          username = input("Please enter your username ")
          password = input("Please enter your password ")
          for line in lines: 
              login_info = line.split()
              if username == login_info[0] and password == login_info[1]:
                  print("Correct credentials!")
                  return True
          print("Incorrect credentials.")

1 个答案:

答案 0 :(得分:1)

文件中包含空行。该程序当前正在测试中,编写代码的人不小心按了Enter键,并在文件中创建了空白行。通过删除此代码,代码起作用了。这是因为line.split()不能用于空白行,因此访问列表中的第一个和最后一个元素会出错。