这是我的密码代码,实际上我有4个条件。然后,我最后用def final_password进行了检查,如果之前的4个功能全部为TRUE,则密码为TRUE,否则为FALSE。但是,最后一个没有用,在我的测试过程中,即使4个条件为TRUE时,它始终为FALSE。谢谢!
NON_ALPHABETIC_CARACTERS = ("!", "?", "§")
def password_len (password) :
lenght_caracters_check = False
for i in password :
if len(password) > 4 and len(password) < 10 :
lenght_caracters_check = True
break
else :
return lenght_caracters_check
def password_numeric_caracters (password) :
numeric_caracters_check = False
for i in password :
if i.isnumeric () :
numeric_caracters_check = True
break
else :
return numeric_caracters_check
def password_alphabetic_caracters (password) :
alphabetic_caracters_check = False
for i in password :
if i.isalpha () :
alphabetic_caracters_check = True
break
else :
return alphabetic_caracters_check
def special_caracters (password) :
special_caracters_check = False
for i in password :
if i in NON_ALPHABETIC_CARACTERS :
special_caracters_check = True
break
else :
return special_caracters_check
def final_password (password) :
final_password_check = False
if password_len(password) and password_numeric_caracters(password) and password_alphabetic_caracters(password) and password_special_caracters(password) :
final_password_check = True
return final_password_check
答案 0 :(得分:2)
对于True情况,您需要在所有功能中添加“ return”。
对于True情况,您只是将变量设置为true。但是,您不返回它。
此外,由于您要打破第一个成功案例的循环,因此不会对所有字符进行全面检查。您需要使用继续修改中断:
for i in password :
if i.isalpha () :
continue
else :
return False
return True
答案 1 :(得分:0)
您的代码还有其他问题,但是回答您的问题时,条件为True时,函数special_caracters(password)不会返回任何值。尝试重构一下:
def special_caracters (password):
for i in password:
if i in NON_ALPHABETIC_CARACTERS:
return True
return False