繁体   English   中英

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

[英]Why does my program keep throwing an index out of range error?

我用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.")

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM