在这段代码中,程序要求输入密码,密码必须至少有8个字符,并且包含数字和字母,如果其中任何一个条件不满足,那么程序会发出警告并再次要求输入密码!所以当密码满足条件时,循环不会停止并再次询问! 我想知道当密码正确时如何停止它?
def passValidation(password):
if len(password) < 8 :
print('ur password must be at least 8 char :')
elif password.isnumeric():
print('ur password must have one letter')
elif password.isalpha():
print('ur password must have one number')
else :
print('ur password is true')
while True :
password = input('enter ur password:')
passValidation(password)
您的
passValidation
可以打印出有用的语句来指示密码如何无效,但最终应该 return
True
或 False
来指示密码有效性。
其次,如果第一次输入的密码没问题,则不一定要进入循环。不要立即跳入 while 循环,而是提示输入密码,如果密码无效则进入循环。这使您更清楚您的
while
条件应该是什么,而不是使用 while True
和 break
语句。
def passValidation(password):
if len(password) < 8 :
print('ur password must be at least 8 char :')
return False
elif password.isnumeric():
print('ur password must have one letter')
return False
elif password.isalpha():
print('ur password must have one number')
return False
else:
print('ur password is true')
return True
password = input('enter ur password:')
while not passValidation(password):
password = input('enter ur password:')