鱼C论坛

 找回密码
 立即注册
查看: 1472|回复: 11

[已解决]判断密码强弱

[复制链接]
发表于 2021-1-18 10:33:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 凯0102 于 2021-1-18 11:08 编辑

密码要求:至少8位,必须包含字母和数字。
运行的时候无法正常运行,不能正常输出,各位帮忙看一下哪错了。
  1. def check_number_excit(password_str):
  2.     for c in password_str:
  3.         if c.isnumeric():
  4.             return True
  5.         return False
  6. def check_alphabat_excit(password_str):
  7.      for c in password_str:
  8.          if c.isalpha():
  9.              return True
  10.         return False
  11. def main():
  12.     password = input('请输入密码:')
  13. #判断密码强度
  14.     strength_level = 0
  15. #规则1 密码长度大于8
  16.     if len(password) >= 8:
  17.         strength_level += 1
  18.     else:
  19.         print("您的密码少于8位")
  20. #规则二    包含数字

  21.     if check_number_excit(password):
  22.         strength_level += 1
  23.     else:
  24.         print("密码必须包含数字元素!!")
  25. #规则三  包含字母

  26.     if check_alphabat_excit(password):
  27.         strength_level += 1

  28.     else:
  29.         print("密码必须包含字母元素!!")
  30.     if strength_level == 3:
  31.         print("您的密码强度合格!!")
  32.     else:
  33.         print("您的密码强度不合格。")





  34. if __name__ == '__main__':
  35.         main()

复制代码
最佳答案
2021-1-18 11:36:48
  1. def check_number_excit(password_str):
  2.     r = False
  3.     for c in password_str:
  4.         if c . isnumeric():
  5.             r = True
  6.             break
  7.     return r

  8. def check_alphabat_excit(password_str):
  9.      r = False
  10.      for c in password_str:
  11.          if c . isalpha():
  12.              r =  True
  13.      return r

  14. def main():
  15.     strength_level = 0
  16.     password = input('请输入密码:')
  17.     if len(password) >= 8:
  18.         strength_level += 1
  19.     if check_number_excit(password):
  20.         strength_level += 2  
  21.     if check_alphabat_excit(password):
  22.         strength_level += 4
  23.     if strength_level == 7 :
  24.         print("您的密码强度合格!!")
  25.     else:
  26.         print("您的密码强度不合格!")
  27.         print("原因是" , end = '')
  28.         if strength_level == 6:
  29.             print("长度不够 8 个字符")
  30.         elif strength_level == 5:
  31.             print("没有包含数字")
  32.         elif strength_level == 4:
  33.             print("长度不够 8 个字符,没有包含数字")
  34.         elif strength_level == 3:
  35.             print("没有包含字母")
  36.         elif strength_level == 2:
  37.             print("长度不够 8 个字符,没有包含字母")
  38.         elif strength_level == 1:         
  39.             print("没有包含数字和字母")
  40.         else:
  41.             print("长度不够 8 个字符,没有包含数字和字母")

  42. if __name__ == '__main__':
  43.     main()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-18 10:36:09 | 显示全部楼层

回帖奖励 +5 鱼币

付费太不靠谱了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-18 10:38:48 | 显示全部楼层
本帖最后由 qq1151985918 于 2021-1-18 10:42 编辑

啥也看不到,不过我以前给人回复过一个类似的你看看吧,在最后面的回复 200多行那个 有更详细的补充说明
<font color="red">[已解决]</font>python新人,求助大佬们这段密码等级判断的代码能否正确运行嘞?万分感谢!
https://fishc.com.cn/thread-188204-1-1.html
(出处: 鱼C论坛)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-18 10:39:50 | 显示全部楼层

我好像整错了
我想着是奖励来着,整成付费了呜呜呜呜
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-18 10:42:23 | 显示全部楼层
凯0102 发表于 2021-1-18 10:39
我好像整错了
我想着是奖励来着,整成付费了呜呜呜呜

应该可以修改吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-18 11:05:55 | 显示全部楼层

咦~是吗,让我试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-18 11:09:50 | 显示全部楼层
凯0102 发表于 2021-1-18 11:05
咦~是吗,让我试试

修改好了,哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-18 11:16:49 | 显示全部楼层
本帖最后由 qq1151985918 于 2021-1-18 11:26 编辑

缩进问题这个代码还是有问题,我本来一位是语法问题,结果逻辑还有问题,我下边发的那个,那个改过来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-18 11:22:40 | 显示全部楼层

回帖奖励 +5 鱼币

缩进和return的问题,我修改了一下
  1. # 检查密码中是否包含数字
  2. def check_number_excit(password_str):
  3.     for c in password_str:
  4.         if c.isnumeric():
  5.             return True
  6.     return False

  7. #检查密码中是否包含字母
  8. def check_alphabat_excit(password_str):
  9.     for c in password_str:
  10.         if c.isalpha():
  11.             return True
  12.     return False

  13. def main():
  14.     password = input('请输入密码:')
  15. #判断密码强度
  16.     strength_level = 0
  17. #规则1 密码长度大于8
  18.     if len(password) >= 8:
  19.         strength_level += 1
  20.     else:
  21.         print("您的密码少于8位")
  22. #规则二    包含数字

  23.     if check_number_excit(password):
  24.         strength_level += 1
  25.     else:
  26.         print("密码必须包含数字元素!!")
  27. #规则三  包含字母

  28.     if check_alphabat_excit(password):
  29.         strength_level += 1

  30.     else:
  31.         print("密码必须包含字母元素!!")
  32.     if strength_level == 3:
  33.         print("您的密码强度合格!!")
  34.     else:
  35.         print("您的密码强度不合格。")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-1-18 11:23:42 | 显示全部楼层
你那个代码缩进不知一处问题,我又给你改了下这下就没问题了
  1. def check_number_excit(password_str):
  2.     for c in password_str:
  3.         if c.isnumeric():
  4.             return True
  5.     return False
  6. def check_alphabat_excit(password_str):
  7.     for c in password_str:
  8.         if c.isalpha():
  9.             return True
  10.     return False
  11. def main():
  12.     password = input('请输入密码:')
  13. #判断密码强度
  14.     strength_level = 0
  15. #规则1 密码长度大于8
  16.     if len(password) >= 8:
  17.         strength_level += 1
  18.     else:
  19.         print("您的密码少于8位")
  20. #规则二    包含数字

  21.     if check_number_excit(password):
  22.         strength_level += 1
  23.     else:
  24.         print("密码必须包含数字元素!!")
  25. #规则三  包含字母

  26.     if check_alphabat_excit(password):
  27.         strength_level += 1

  28.     else:
  29.         print("密码必须包含字母元素!!")
  30.     if strength_level == 3:
  31.         print("您的密码强度合格!!")
  32.     else:
  33.         print("您的密码强度不合格。")





  34. if __name__ == '__main__':
  35.         main()

复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-18 11:36:48 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +5 鱼币

  1. def check_number_excit(password_str):
  2.     r = False
  3.     for c in password_str:
  4.         if c . isnumeric():
  5.             r = True
  6.             break
  7.     return r

  8. def check_alphabat_excit(password_str):
  9.      r = False
  10.      for c in password_str:
  11.          if c . isalpha():
  12.              r =  True
  13.      return r

  14. def main():
  15.     strength_level = 0
  16.     password = input('请输入密码:')
  17.     if len(password) >= 8:
  18.         strength_level += 1
  19.     if check_number_excit(password):
  20.         strength_level += 2  
  21.     if check_alphabat_excit(password):
  22.         strength_level += 4
  23.     if strength_level == 7 :
  24.         print("您的密码强度合格!!")
  25.     else:
  26.         print("您的密码强度不合格!")
  27.         print("原因是" , end = '')
  28.         if strength_level == 6:
  29.             print("长度不够 8 个字符")
  30.         elif strength_level == 5:
  31.             print("没有包含数字")
  32.         elif strength_level == 4:
  33.             print("长度不够 8 个字符,没有包含数字")
  34.         elif strength_level == 3:
  35.             print("没有包含字母")
  36.         elif strength_level == 2:
  37.             print("长度不够 8 个字符,没有包含字母")
  38.         elif strength_level == 1:         
  39.             print("没有包含数字和字母")
  40.         else:
  41.             print("长度不够 8 个字符,没有包含数字和字母")

  42. if __name__ == '__main__':
  43.     main()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-21 11:04:38 | 显示全部楼层
正则表达式了解一下!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-22 08:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表