鱼C论坛

 找回密码
 立即注册
查看: 670|回复: 4

还是第十四讲作业,跪求捉虫

[复制链接]
发表于 2018-11-18 08:49:45 | 显示全部楼层 |阅读模式

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

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

x
def check():
    num='0123456789'
    alp='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    fuhao=' !@#$%^&*><?'
    temp=1
    flag=0
    while temp != 'Q':
        temp = input('请输入需要检查的密码组合:')
        lenth=len(temp)
        for each in temp:
            if each in num:
                flag += 1
                break
        for each in alp:
            if each in alp:
                flag += 1
                break
        for each in fuhao:
            if each in fuhao:
                flag += 1
                break
        if lenth>16 and flag == 3 and (temp[0] in alp):
            print("密码为高级标准,棒棒哒!")
   
        elif lenth<8 or flag <= 1:
                print("密码为低级标准,要继续提高")

        else:
            print("密码为中级标准,要继续提高”)

运行结果:
QQ浏览器截图20181118084453.png

要几个问题我想破头都想不明白:
1、为什么输入纯数字都还是中标准,难道我大py看不懂我 flag<=1 这个定义吗?
2、#输入之后变成注释了,怎么破?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-11-18 08:52:11 | 显示全部楼层
因为你的逻辑if elif都不满足,就进了else就是中级密码了
你的长度大于16,if elif都不会进
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-18 09:42:27 | 显示全部楼层
塔利班 发表于 2018-11-18 08:52
因为你的逻辑if elif都不满足,就进了else就是中级密码了
你的长度大于16,if elif都不会进

但是班哥你看啊  elif lenth<8 or flag <= 1: lenth不满足但是满足了flag啊,这样都不进吗?
再者注释哪里怎么破啊?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-18 09:46:09 | 显示全部楼层
猫不理 发表于 2018-11-18 09:42
但是班哥你看啊  elif lenth

你的flag还没有清零,上次的flag会叠加
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-18 10:27:28 From FishC Mobile | 显示全部楼层
本帖最后由 heidern0612 于 2018-11-18 11:39 编辑

你break的只是for循环,不是while循环,所以下次循环的时候flag默认值并没有清零,而是你上次判断剩下的flag值.


解决办法一是不用while循环,解决办法二是把flag=0的赋值扔在while语句循环开始的时候。

另外你的逻辑有问题..还是重新画个思维图,重新写吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-7 14:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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