鱼C论坛

 找回密码
 立即注册
查看: 2230|回复: 1

[已解决]关于第五章作业的一点疑问

[复制链接]
发表于 2019-9-27 13:22:44 | 显示全部楼层 |阅读模式

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

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

x
symbols = '~!@#$%^&*()_=-/,.?<>;:[]{}\|'
chars = 'abcdefghijklmnopqrstuvwxyzABCCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'
t = 'y'
while t == 'y':
    passwd = input('您输入的密码为空(或空格),请重新输入:')
    length = len(passwd)
    while (passwd.isspace()) or (length == 0):
        passwd = input('您输入的密码为空(或空格),请重新输入:')
        length = len(passwd)
        #flag_len 和 flag_con分别是什么意思,有什么作用#
    if length <= 8:
        flag_len = 1
    elif 8 < length < 16:
        flag_len = 2
    else:
        flag_len = 3
    flag_con = 0
    for each in passwd:
        if each in symbols:
            flag_con = flag_con + 1
            break
    for each in passwd:
        if each in chars:
            flag_con = flag_con + 1
            break
    for each in passwd:
        if each in nums:
            flag_con = flag_con + 1
            break
       #while 1这里的1是怎么来的,有什么作用#
    while 1:
        print('您的密码安全等级为:',end = '')
        if flag_len == 1 or flag_con == 1:
            print('低')
        elif flag_len == 2 or flag_con == 2:
            print('中')
        else:
            print('高')
            print('请继续保持')
            break
        print('111')
        break
    t=input('还要测试么?("y"继续,其他退出)')
   #好像并没有实现第一个字母必须大写#

这是验证密码的安全等级的那个题,上面程序代码中标红的区域就是我的疑问,一共有三个:flag_len 和 flag_con分别是什么意思,有什么作用;while 1这里的1是怎么来的,有什么作用;这个程序好像并没有实现第一个字母必须大写
最佳答案
2019-9-27 15:26:31
1、flag_len其实就是根据密码长度判断的等级,小于等于8的为1级,大于8小于16的为2级,其他的为3级
     flag_con是密码等级的另外一个判断,就是复杂程度加分的说法,如果包含特殊字符加1分,如果包含大小写字母加1分,如果包含数字加1分
当密码长度等级为1且复杂程度得分为1时,安全等级为低,以此类推(懒得写了)

2、while 1 是代表条件始终成立,在其他地方是要做无限循环,在当前这段代码中并没有要无限循环的意思,因为在判断之后不管条件是什么最终都break了,只执行了一次

3、并没有实现第一个字母必须大写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-27 15:26:31 | 显示全部楼层    本楼为最佳答案   
1、flag_len其实就是根据密码长度判断的等级,小于等于8的为1级,大于8小于16的为2级,其他的为3级
     flag_con是密码等级的另外一个判断,就是复杂程度加分的说法,如果包含特殊字符加1分,如果包含大小写字母加1分,如果包含数字加1分
当密码长度等级为1且复杂程度得分为1时,安全等级为低,以此类推(懒得写了)

2、while 1 是代表条件始终成立,在其他地方是要做无限循环,在当前这段代码中并没有要无限循环的意思,因为在判断之后不管条件是什么最终都break了,只执行了一次

3、并没有实现第一个字母必须大写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 22:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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