鱼C论坛

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

[已解决]第十四讲作业问题

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

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

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

x
def check():
    num='0123456789'
    alp='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    fuhao=' !@#$%^&*><?'
    temp=1
    flag=0
    while temp != 'Q':
        temp = input('请输入需要检查的密码组合:')
        lenth=len(temp)
        while temp.isspace() or lenth == 0:
            temp = input('输入无效,请重新输入')
            lenth= len(temp)
        for each in temp:
            if each in num:
                flag += 1
                break
            if each in alp:
                flag += 1
                break
            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("密码为中级标准,要继续提高")


我这个代码跑起来是高中低乱跳,我看来看去,是不是红色部分出了问题呢?在一个for 语句后面跟三个判断是不是不行的呢?他的实行机理又会是怎么样的呢?我试不出来,跪请求大神更正
最佳答案
2018-11-17 09:52:44
本帖最后由 heidern0612 于 2018-11-17 10:05 编辑

一个for循环怎么判断三种条件?

你第一次循环,检测到密码有数字,就直接跳出for循环了,后面两个就不检测了,一直判断的都是flag = 1的情况。

再循环也是判断有数字就退出了,flag不断增1,增到3以后还往上增,增到4就不符合前两个条件,所以一直是中级密码了。

差就差在第一个应该是 flag ==1 ,而不是+= 1 .

另外三个判断是否包含字母应该分开用for循环,而不是一个全包含在内。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-11-17 09:20:37 | 显示全部楼层
过来顶一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-17 09:52:44 | 显示全部楼层    本楼为最佳答案   
本帖最后由 heidern0612 于 2018-11-17 10:05 编辑

一个for循环怎么判断三种条件?

你第一次循环,检测到密码有数字,就直接跳出for循环了,后面两个就不检测了,一直判断的都是flag = 1的情况。

再循环也是判断有数字就退出了,flag不断增1,增到3以后还往上增,增到4就不符合前两个条件,所以一直是中级密码了。

差就差在第一个应该是 flag ==1 ,而不是+= 1 .

另外三个判断是否包含字母应该分开用for循环,而不是一个全包含在内。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-17 09:53:55 | 显示全部楼层
正确的写法可以参考这个帖子:戳我前进
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-17 10:32:52 | 显示全部楼层
heidern0612 发表于 2018-11-17 09:52
一个for循环怎么判断三种条件?

你第一次循环,检测到密码有数字,就直接跳出for循环了,后面两个就不检 ...

你讲得都很有道理,谢谢了!但是我的flag应该就要+=1的,因为我初始值是flag=0
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-9 08:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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