【发布时间】:2021-01-28 10:02:05
【问题描述】:
我正在尝试创建一个代码,其中两个预先存在的用户可以登录到一个帐户,并且它是从一个 csv 文件获得授权的 - 然后这些玩家可以玩骰子游戏。我已经完成了游戏,但是我的代码没有读取包含读取 csv 信息的循环。我尝试了许多不同的方法,包括仅读取行、拆分行以及许多其他操作。我的代码不返回任何错误,而只是运行代码,而不对用户进行身份验证。我需要代码来搜索用户名,如果存在,请检查右边框中的密码是否与代码中给出的密码匹配,打印用户已登录。如果用户和密码不匹配,让用户再输入两次密码,如果密码仍然不匹配打印他们将无法登录。
任何帮助将不胜感激,谢谢。
import csv #importing my csv with my authenticated users in
import random #importing random to use to generate a random number
def login1(): #creating a function so i can do the login cycle again
loggedin1 = False #making user1 not logged in
global username
username = input("Please enter your username:")# ask the users username
password = input("Please enter your password:")#ask user for password
with open("game.csv","r+")as csvfile: # opening my csvfile
datareader = csv.reader(csvfile, delimiter=',') #reading my csv file
for row in datareader:
user = line.split(",")
user = user[0]
print(user) # to test if it is running this
if username == user:
print("User name exists")
for row in datareader:
passw = line.split(",")
passw = passw[0]
if password == passw:
print("hello",username,"you are logged in")
else:
password =input("Password is wrong, please try again")
elif userexists == False:
print("no username found, please enter the username again")
login1()
return(username)
login()
【问题讨论】:
-
请将您的代码精简到重现您的问题所需的绝对最低限度。您的输入文件的小样本也可能会有所帮助,
-
嗨,谢谢,我现在已经删除了我的代码,很抱歉我是新手。我的 csv 目前在第一个框中只有一个单词,因为我正试图在添加更多用户之前让它工作
-
因为您已经在使用 csv 阅读器,所以不需要
line.split(",")(line在哪里定义?)...读者应该为您这样做。你可以用print(row)替换这一行,看看你会得到什么。还有:你有没有调用过login1()函数? -
谢谢你,我已经删除了那行并按照你说的替换了它,但它仍然不打印'row',有什么想法吗?是的,对不起,当我剥离我的代码时,我一定是不小心删除了它
标签: python