鱼C论坛

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

[已解决]判断密码强弱

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

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

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

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

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

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

    if check_alphabat_excit(password):
        strength_level += 1

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





if __name__ == '__main__':
        main()
最佳答案
2021-1-18 11:36:48
def check_number_excit(password_str):
    r = False
    for c in password_str:
        if c . isnumeric():
            r = True
            break
    return r

def check_alphabat_excit(password_str):
     r = False
     for c in password_str:
         if c . isalpha():
             r =  True
     return r

def main():
    strength_level = 0
    password = input('请输入密码:')
    if len(password) >= 8:
        strength_level += 1
    if check_number_excit(password):
        strength_level += 2  
    if check_alphabat_excit(password): 
        strength_level += 4
    if strength_level == 7 :
        print("您的密码强度合格!!")
    else:
        print("您的密码强度不合格!")
        print("原因是" , end = '')
        if strength_level == 6:
            print("长度不够 8 个字符")
        elif strength_level == 5:
            print("没有包含数字")
        elif strength_level == 4:
            print("长度不够 8 个字符,没有包含数字")
        elif strength_level == 3: 
            print("没有包含字母")
        elif strength_level == 2:
            print("长度不够 8 个字符,没有包含字母")
        elif strength_level == 1:         
            print("没有包含数字和字母")
        else:
            print("长度不够 8 个字符,没有包含数字和字母")

if __name__ == '__main__':
    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的问题,我修改了一下
# 检查密码中是否包含数字
def check_number_excit(password_str):
    for c in password_str:
        if c.isnumeric():
            return True
    return False

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

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

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

    if check_alphabat_excit(password):
        strength_level += 1

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

使用道具 举报

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

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

    if check_alphabat_excit(password):
        strength_level += 1

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





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

使用道具 举报

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

回帖奖励 +5 鱼币

def check_number_excit(password_str):
    r = False
    for c in password_str:
        if c . isnumeric():
            r = True
            break
    return r

def check_alphabat_excit(password_str):
     r = False
     for c in password_str:
         if c . isalpha():
             r =  True
     return r

def main():
    strength_level = 0
    password = input('请输入密码:')
    if len(password) >= 8:
        strength_level += 1
    if check_number_excit(password):
        strength_level += 2  
    if check_alphabat_excit(password): 
        strength_level += 4
    if strength_level == 7 :
        print("您的密码强度合格!!")
    else:
        print("您的密码强度不合格!")
        print("原因是" , end = '')
        if strength_level == 6:
            print("长度不够 8 个字符")
        elif strength_level == 5:
            print("没有包含数字")
        elif strength_level == 4:
            print("长度不够 8 个字符,没有包含数字")
        elif strength_level == 3: 
            print("没有包含字母")
        elif strength_level == 2:
            print("长度不够 8 个字符,没有包含字母")
        elif strength_level == 1:         
            print("没有包含数字和字母")
        else:
            print("长度不够 8 个字符,没有包含数字和字母")

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 18:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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