def login():
user = raw_input("Username: ")
passw = raw_input("Password: ")
f = open("users.txt", "r")
for line in f.readlines():
us, pw = line.strip().split("|")
if (user in us) and (passw in pw):
print "Login successful!"
return True
print "Wrong username/password"
return False
def menu():
#here's a menu that the user can access if he logged in.
def main():
login()
log = login()
if log == True:
menu()users.txt是:
john22|1234
max2|2211
jack6|1551问题是,当我运行程序并输入正确的用户名和密码时,它打印出"Login successful!“但它不会继续出现在menu()中。相反,它会再次显示"Username:“和"Password:”。但是,当我再次输入正确的用户名和密码(与users.txt相同或不同)时,它会进入菜单(),并且一切正常。所以我的猜测是,出于某种原因,你必须输入正确的信息两次,而我不想这样。我到处找了,但我不明白为什么会这样。
发布于 2015-02-13 01:04:06
问题是调用了两个login()实例。以下代码将重复登录,直到正确为止:
def login():
user = raw_input("Username: ")
passw = raw_input("Password: ")
f = open("users.txt", "r")
for line in f.readlines():
us, pw = line.strip().split("|")
if (user in us) and (passw in pw):
print "Login successful!"
return True
print "Wrong username/password"
return False
def menu():
#here's a menu that the user can access if he logged in.
def main():
global True
while True:
True = True
log = login()
if log == True:
menu()
True = False
main()https://stackoverflow.com/questions/28483113
复制相似问题