python登录系统中的循环不断重复,不会中断
我的老师给了我一个任务,让我只为用户名部分建立一个登录系统,他给了代码,但它不能正常工作,因为while循环不断重复,用户在已经输入用户名的情况下输入用户名,而不会进入下一部分代码。我认为代码甚至没有读取文件或拆分行 我试着在不同的地方加入break函数并改变代码的缩进,但我太迷茫了。我还尝试将变量“StudentDetails”更改为UserData(csv文件的名称),但它没有改变任何东西python登录系统中的循环不断重复,不会中断,python,csv,while-loop,login-system,Python,Csv,While Loop,Login System,我的老师给了我一个任务,让我只为用户名部分建立一个登录系统,他给了代码,但它不能正常工作,因为while循环不断重复,用户在已经输入用户名的情况下输入用户名,而不会进入下一部分代码。我认为代码甚至没有读取文件或拆分行 我试着在不同的地方加入break函数并改变代码的缩进,但我太迷茫了。我还尝试将变量“StudentDetails”更改为UserData(csv文件的名称),但它没有改变任何东西 #Login System #First Name, Last Name, D.O.B, Email,
#Login System
#First Name, Last Name, D.O.B, Email, Username, Password
UFound = False
UAttempts = 0 #Set to 0 tries to enter username
#Allow the yser to try login 3 times
while (UFound == False and UAttempts <3):
UName = input("Please enter your username: ")
UAttempts = UAttempts +1 #Has entered username once
#Opens csv file and reads
myFile = open("UserData.csv","r")
for line in myFile:
StudentDetails = line.split(",") #Splits line into csv parts
if StudentDetails[4] == UName: #Username is in database
UFound = True
myFile.close() #Close the data file
if UFound == True:
print("Welcome to the quiz!")
else:
print("There seems to be a problem with your details.")
#登录系统
#名字、姓氏、D.O.B、电子邮件、用户名、密码
UFound=False
UATENTS=0#设置为0将尝试输入用户名
#允许yser尝试登录3次
虽然(UFound==False,uattests您遇到了这个问题,因为您没有在while循环中检查它是否是有效的用户名。这应该都在while循环中。我还会在循环外打开和关闭文件,这样就不会每次打开和关闭文件。我还会添加一个部分来捕获太多的尝试。这样做您可以可以删除while循环中的and语句
myFile=open(“UserData.csv”、“r”)
当UFound==False时:
UName=input(“请输入您的用户名:”)
UATENTS=UATENTS+1#已输入用户名一次
如果参数大于2:
打印('尝试次数过多')
打破
#打开csv文件并读取
myFile=open(“UserData.csv”、“r”)
对于myFile中的行:
StudentDetails=line.split(“,”)#将行拆分为csv部分
如果StudentDetails[4]==UName:#用户名在数据库中
打印(“欢迎参加测验!”)
UFound=True
其他:
打印(“您的详细信息似乎有问题。”)
myFile.close()#关闭数据文件
您可以在打开文件的行之后添加一个标识,直到文件关闭。除了小心缩进外,还要注意line.split(“,”
不会删除前导空格。可能您需要的是line.split(“,”)