如何停止函数中使用的while循环?

问题描述 投票:0回答:1

在这段代码中,程序要求输入密码,密码必须至少有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)
python function while-loop
1个回答
0
投票

您的

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:')
© www.soinside.com 2019 - 2024. All rights reserved.