Python代码在while循环后不继续
我是python的初学者,所以这可能是一个愚蠢的问题。 我正在尝试制作一个登录程序来练习到目前为止所学的内容,但是python在满足while条件后不会继续阅读我的其余代码。这是我的代码,以防您不理解我的意思Python代码在while循环后不继续,python,loops,while-loop,Python,Loops,While Loop,我是python的初学者,所以这可能是一个愚蠢的问题。 我正在尝试制作一个登录程序来练习到目前为止所学的内容,但是python在满足while条件后不会继续阅读我的其余代码。这是我的代码,以防您不理解我的意思 def register(): confirm_user = "" username_reg = "" pass_enter = "" pass_confirm = ""
def register():
confirm_user = ""
username_reg = ""
pass_enter = ""
pass_confirm = ""
while confirm_user == "yes":
username_reg = input("Please enter a username you would like to use: ")
confirm_user = input("Would you like to confirm this username?: ")
if confirm_user == "yes":
username_enter = open("username.py", 'w')
username_enter.write(username_reg)
raise Exception("Username created successfully!")
elif confirm_user == "no":
print("Choose a different username")
else:
print("Invalid input please enter yes or no")
while pass_enter != pass_confirm:
pass_enter = input("Please enter a password you would like to use: ")
pass_confirm = input("Please confirm password by re-typing it: ")
if pass_enter == pass_confirm:
password_enter = open("password.py", 'w')
password_enter.write(pass_enter)
elif pass_enter != pass_confirm:
print("Passwords do not match please re-enter password and re-confirm")
def login():
pass_log = ""
user_log = ""
pass_check = open("password.py", 'r')
user_check = open("username.py", 'r')
while user_log != user_check.readline():
user_log = input("Please enter your username: ")
if user_log != user_check.readline():
print("This username does not exist, please enter a valid username")
elif user_log == user_check.readline():
while pass_log != pass_check.readline():
pass_log = input("Please enter your password: ")
if pass_log != pass_check.readline():
print("This password is incorrect, please re-enter your password")
elif pass_log == pass_check.readline():
print("Welcome back " + user_check.readline())
intro = input("Welcome, to login type 'login' to register a new account type 'register': ")
if intro == "register":
register()
elif intro == "login":
login()
在输入“register”和用户名并说“yes”以确认程序只是停止,不继续其余的注册功能后,我不知道为什么…出现了一些错误 第一个While循环将永远不会被输入,因为 确认用户= 在开始时,我们仅在以下情况下启动while循环 确认用户=是 我把它改成了bool,在while循环中,当 确认用户==是 写入后应关闭该文件,并将w更改为a,以便追加新用户,且不会覆盖该文件 下面的行将终止该程序,因为我们说异常已发生 已成功创建raise ExceptionUsername 在第二个while循环中,我们遇到了与第一个循环相同的问题 与写入密码文件的操作相同
你的意思是不平等吗?确认用户时!=对:。现在,只有当用户不说“是”时,程序才会继续。while循环的目的是什么?输入在循环外部处理…confirm\u user初始化为空字符串,因此while confirm\u user==yes循环将永远不会执行。同样,pass_enter和pass_confirm初始化为空字符串,因此while pass_enter!=pass\u confirm循环将永远不会执行。请提供预期值。显示中间结果与预期结果的偏差。我们应该能够将单个代码块粘贴到文件中,运行它,并重现您的问题。这也让我们可以在您的上下文中测试任何建议。您为5行问题发布了大约50行代码,并且您的示例要求我们输入测试输入。@ JohnGordon,所以我应该删除空白字符串吗?我刚试过,但仍然有同样的问题。你关闭了文件吗?第二个while循环没有开始,因为它们在开始时是相同的。这两个都是问题,当我删除变量时,它要求我定义变量,所以idk做什么添加用户名。\u enter.close右键输入用户名。\u enter.write仍然有同样的问题吗尽量不让人讨厌,我真的很感谢你的帮助,但现在我逐字复制了你的代码,但在我输入用户名并说“是”以确认后,它一直要求我再次输入用户名
def register():
confirm_user = ""
confirmed = False
username_reg = ""
pass_enter = ""
pass_confirm = ""
same = False
while confirmed == False:
username_reg = input("Please enter a username you would like to use: ")
confirm_user = input("Would you like to confirm this username?: ")
if confirm_user.lower() == "yes":
confirmed = True
username_enter = open("username.txt", 'a')
username_enter.write(username_reg)
username_enter.close()
print("Username created successfully!")
while same == False:
pass_enter = input("Please enter a password you would like to use: ")
pass_confirm = input("Please confirm password by re-typing it: ")
if pass_enter == pass_confirm:
same = True
else:
print("Passwords do not match please re-enter password and re-confirm")
password_enter = open("password.txt", 'a')
password_enter.write(pass_enter)
password_enter.close()
def login():
pass_log = ""
user_log = ""
pass_check = open("password.py", 'r')
user_check = open("username.py", 'r')
while user_log != user_check.readline():
user_log = input("Please enter your username: ")
if user_log != user_check.readline():
print("This username does not exist, please enter a valid username")
elif user_log == user_check.readline():
while pass_log != pass_check.readline():
pass_log = input("Please enter your password: ")
if pass_log != pass_check.readline():
print("This password is incorrect, please re-enter your password")
elif pass_log == pass_check.readline():
print("Welcome back " + user_check.readline())
intro = input("Welcome, to login type 'login' to register a new account type 'register': ")
if intro == "register":
register()
elif intro == "login":
login()