【发布时间】:2018-07-04 23:18:41
【问题描述】:
编写一个判断密码是否正确的函数。我们 将一个好的密码定义为至少 8 个字符长并且 包含至少一个大写字母、至少一个小写字母和至少一个数字。
import string
num = [i for i in range(0,10)]
letdown = list(string.ascii_lowercase)
letup = list(string.ascii_uppercase)
def good_password(password):
l1=[]
l2=[]
l3=[]
for char in password:
if char in num:
l1.append(char)
elif char in letdown:
l2.append(char)
elif char in letup:
l3.append(char)
if len(l1)>=1 and len(l2) >=1 and len(l3) >=1 and len(password) >=8:
return True
else:
return False
这是我想出的代码。但是,它似乎不起作用,我不知道为什么。谁能解释我?我仍然是编程新手。
【问题讨论】:
-
提示:
"5" in num将评估为 False。为什么会这样? -
你的意思是它不工作?当您尝试使用正确的密码或错误的密码时会发生什么?
-
“它似乎不起作用”不是一个充分的问题陈述。
-
顺便说一句,我的小毛病:
if <Boolean expression>: return True else: return False可以(并且应该)总是替换为return <Boolean Expression>。 -
在您的代码中,
num是整数列表 [0, 1 ... 9] 而它应该是字符串“0123456789”或字符列表 ['0',' 1' ...'9']。