[英]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.