【发布时间】:2019-12-16 00:06:05
【问题描述】:
我正在尝试完成一些 Python 代码,但遇到了一些问题。基本上,我试图提示用户输入所需的用户名和密码,以及最喜欢的颜色(作为安全问题)以在输入信息后初始化的 GUI 中使用。用户名和密码必须满足特定要求,您可以在代码的打印语句中找到这些要求。如果不满足要求,将继续提示用户输入信息,直到满足所有要求,通过当满足要求时将中断的 while 循环。我遇到的问题是,循环将结束并且 GUI 无论如何都会启动,无论是否满足要求。看来valid_pass函数也被完全忽略了。我是 Python 新手,所以知识不多。
def valid_user():
if (8 <= len(user) <= 24):
valid_user == True
print("Username meets requirements!")
else:
valid_user == False
print("Please make sure your username meets length requirements. Usernames must be in between 8 and 24 characters in length.")
def valid_pass():
if (8 <= len(pw) <= 24):
if pw.isdigit() == True:
if pw.isalpha() == True:
valid_pass() == True
print("Password meets requirements!")
else:
valid_pass() == False
print("Please make sure your password meets length requirements. Passwords must be in 8 and 24 characters in length and contain both letters and numbers.")
while (use_inp):
user = input("Set a username.")
pw = input("Now, select a password.")
user_answer = input("Select a favorite color")
valid_user()
valid_pass()
if valid_user() == False or valid_pass() == False:
continue
else:
break
break
【问题讨论】:
-
我建议使用带参数和返回值的函数。
-
您的函数不返回任何内容。当您编写
valid_user() == False时,您正在测试函数的返回值,即None,因为您没有返回值。此外,isalpha和isdigit函数也不会像你想象的那样工作——它们只返回 true 是整个字符串是数字或字母。字符串abc123对两者都返回 False。
标签: python