Python 3密码ch

2024-09-30 22:27:07 发布

您现在位置:Python中文网/ 问答频道 /正文

问题是:编写一个检查字符串是否为有效密码的函数。在

规则:密码必须至少包含8个字符密码必须仅包含字母和数字密码必须至少包含2个数字

我的def counts digitsfor有问题,我希望它至少检查2个数字。在

def getPassword():
   return input("Enter password: ")

def CountDigitsFor(password):
   res = []
   for i in password:
        if i.isdigit():
           res.append(i)
   return int

def validPassword(password):
   if len(password) >= 8:
      if password.isalnum():
         if CountDigitsFor(password) >= 2:
            return True
   else:
      return False

def main():
   password = getPassword()
   if validPassword(password):
      print(password + " is valid")
   else:
      print(password + " is invalid")

main()

Tags: 字符串密码returnifismaindefres
2条回答

为什么不直接用这个:

def CountDigitsFor(password):
   return sum(character.isdigit() for character in password)

我已经在你的另一个问题中提供了上述内容,但为了以防万一,我将给你一个简短的描述,说明这是如何运作的。在

上面的内容相当于您想要的,但只在一行中。这样做的目的是循环检查密码的字符,检查字符是否为数字,然后得到密码中数字的总和。在

然后,在您调用CountDigitsFor()之后,您将得到密码中的位数,您可以使用您提供的if语句检查它们是否至少为2。在

^{pr2}$
return int

只是返回类int。您要返回的是位数。当然是:

^{pr2}$

相关问题 更多 >