题解 | #密码强度等级#

密码强度等级

https://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361

def fen(str1):
    i, j, k, m, l, g = 0, 0, 0, 0, 0, 0
    a, b = 0, 0
    c, d = 0, 0
    if len(str1) <= 4:
        l = 5
    elif 5 <= len(str1) <= 7:
        l = 10
    else:
        l = 25

    for i in str1:
        if 65 <= ord(i) <= 90:
            j = 10
        if 97 <= ord(i) <= 122:
            k = 10
        if 48 <= ord(i) <= 57:
            a = 10
            b += 1
        if int(0x21) <= ord(i) <= int(0x2F) or int(0x3A) <= ord(i) <= int(0x40):
            c = 10
            d += 1
        if int(0x5B) <= ord(i) <= int(0x60) or int(0x7B) <= ord(i) <= int(0x7E):
            c = 10
            d += 1
    if d > 1:
        c = 25
    if b > 1:
        a = 20

    if b > 0 and j + k == 10:
        m = 2
    if b > 0 and j + k == 10 and d > 0:
        m = 3
    if b > 0 and j + k == 20 and d > 0:
        m = 5

    return l + j + k + a + c + m


def pingfen(int1):
    if int1 >= 90:
        print("VERY_SECURE")
    elif int1 >= 80:
        print("SECURE")
    elif int1 >= 70:
        print("VERY_STRONG")
    elif int1 >= 60:
        print("STRONG")
    elif int1 >= 50:
        print("AVERAGE")
    elif int1 >= 25:
        print("WEAK")
    elif int1 >= 0:
        print("VERY_WEAK")


pingfen(fen(input()))

分阶段的把五种加分机制写出来,

输出对应的评价。

注意: int()可以将字符串转换为整型,也可以将16进制转化为10进制。

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
zYvv:双一流加大加粗再标红,然后广投。主要是获奖荣誉不够,建议开始不用追求大厂,去别的厂子刷下实习。
点赞 评论 收藏
分享
07-03 11:02
中山大学 C++
字节刚oc,但距离九月秋招很近了有两段互联网实习,非腾讯字节。不敢赌转正,现在在纠结去还是不去如果实习俩月离职会有什么后果吗
阿城我会做到的:不去后悔一辈子,能否转正取决于ld的态度,只要他不卡,答辩就是走流程,个人觉得可以冲一把
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务