编写一个检查字符串是否为有效密码的函数。
规则: 必须至少有8个字符 密码只能由字母和数字组成 密码必须至少包含2位数字
这就是我到目前为止所拥有的,我做错了什么?谢谢你
def getPassword():
password = input("Enter password: ")
return password
def validPassword(password):
if len(password) >= 8:
valid = True
if password.alnum():
valid = True
if password.isdigit < 2:
valid = True
else:
return False
def main():
password = validPassword()
if validPassword(password):
print(password, "is valid")
else:
print(password, "is invalid")
main()
根据
isdigit()
方法的以下引用here:这不适合你的案子
该方法只让您知道给定的字符串是否是数字,而不是字符串中有多少数字。要做到这一点,你需要多加练习。
您可以使用以下命令
此外,您的代码有一个小错误,因为您永远不会返回True。下面是一个可能的解决方案:
另外,在你的主体中,当你从用户那里得到密码时,你有一个小的输入错误
应该是
因此这里有一个完整的代码
这似乎是一个家庭作业,所以我会尽量避免直接回答,但更多的是努力把你推向正确的方向。
你将运行的第一段代码是
哦,
validPassword(password)
接受一个参数,但没有密码,也许您的意思是getPassword()
让我们逐行检查
validPassword(password)
的逻辑让我们检查字符串的长度是否超过8个字符,如果超过8个字符,则初始化变量valid并将其设置为True
然后不管发生了什么,我们都调用alnum(我不认为它是python中的函数,可能是isalnum的意思)检查密码中的所有字符是否都是数字。 如果是,我们初始化变量valid并将其设置为True。 你可能会说,但我已经初始化了它,实际上,在python中有scope。
然后我们检查密码方法
isdigt
是否小于2,也许您的意思是password.isdigit()
我真的很仔细,因为不清楚您在编程或python方面的熟练程度。但如果你的意思是password.isdigit() < 2
,那么你是在问密码是不是一个数字,如果是,它是不是小于2。 如果是,我们初始化变量valid并将其设置为True。如果且仅当
password.isdigit() < 2
为false,则返回false。以下是一些提示:
希望我的逐行解释能帮助你找到一些错误,并更好地了解如何继续,如果没有,请随时修改你的问题,以便我们更好地了解如何提供帮助。
快乐的编码。
相关问题 更多 >
编程相关推荐