我使用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.")
答案 0 :(得分:1)
文件中包含空行。该程序当前正在测试中,编写代码的人不小心按了Enter键,并在文件中创建了空白行。通过删除此代码,代码起作用了。这是因为line.split()不能用于空白行,因此访问列表中的第一个和最后一个元素会出错。