鱼C论坛

 找回密码
 立即注册
查看: 1985|回复: 6

那个逻辑操作符and跟or怎么好像不行了?急!!

[复制链接]
回帖奖励 18 鱼币 回复本帖可获得 3 鱼币奖励! 每人限 1 次
发表于 2017-1-2 10:23:13 | 显示全部楼层 |阅读模式

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

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

x
是一个课后练习,我没有按照小甲鱼的方法来做,自己写了一个测试密码强度的代码,如下:


while 1:

    安全等级列表 = []
   
    code = input('the code you typed will be tested to find out its security level:')

    if code == '':
        print('you will have to give me sth to test')
        continue

    if len(code) >= 8:
        安全等级列表.append('长度足八位')

    if 16<len(code):
        安全等级列表.append('长度足十六位')

    if len(code)<8:
        安全等级列表.append('长度不足八位')

    if code[0] in 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ':
        安全等级列表.append('开头有字母')

    if code.isdigit() == True:
        安全等级列表.append('纯数字')

    if code.isalpha() == True:
        安全等级列表.append('纯字母')

    for each in code:
        if each in '1234567890':
            安全等级列表.append('有数字')
            break

    for each in code:
        if each in 'abcdefghijklmnopqrstuvwxyz':
            安全等级列表.append('有小写')
            break

    for each in code:
        if each in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
            安全等级列表.append('有大写')
            break

    for each in code:
        if each in """~!@#$%^&*()_+|}{:"?><=-\][';/.,""":
            安全等级列表.append('有符号')
            break
   


    print(安全等级列表)


    if '长度不足八位' or '纯字母' or '纯数字' in 安全等级列表:
        print('安全等级低')

    elif '长度足八位'  and '长度足十六位' and '有符号' and '有数字' and '开头有字母' and '有小写' and '有大写' in 安全等级列表:
        print('安全等级高')

    elif '长度足八位' in 安全等级列表:
        if '开头有字母' in 安全等级列表:
            if '有大写' or '有符号' or '有小写'  in 安全等级列表:
                print('安全等级中')

                                          
现在问题是,无论是我怎么填一个安全等级高或者是中的密码进去,它都是说密码是低安全等级,打个比方说我写了个‘abc12345678‘,这个密码既没有纯数字也没有纯英文,怎么就返回低安全等级呢?就算我是输入’I_love_fishc.com987645123456‘这个完全符合高安全等级的密码,它还是返回低安全呢等级,烦死了。。求解!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-2 12:23:48 | 显示全部楼层

回帖奖励 +3 鱼币

最后几行:
  1.     if '长度不足八位' in 安全等级列表 or '纯字母' in 安全等级列表 or '纯数字' in 安全等级列表:
  2.         print('安全等级低')

  3.     elif '长度足八位'  in 安全等级列表 and '长度足十六位' in 安全等级列表 and '有符号' in 安全等级列表 and '有数字' in 安全等级列表 and '开头有字母' in 安全等级列表 and '有小写' in 安全等级列表 and '有大写' in 安全等级列表:
  4.         print('安全等级高')

  5.     elif '长度足八位' in 安全等级列表:
  6.         if '开头有字母' in 安全等级列表:
  7.             if '有大写' in 安全等级列表 or '有符号' in 安全等级列表 or '有小写'  in 安全等级列表:
  8.                 print('安全等级中')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-2 16:49:23 | 显示全部楼层

回帖奖励 +3 鱼币

来学习一下。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-3 10:18:36 | 显示全部楼层
谢谢一楼!原来差了那么一点!一言惊醒梦中人
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-3 16:04:21 | 显示全部楼层

回帖奖励 +3 鱼币

666
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-3 16:05:05 | 显示全部楼层
真是厉害
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-3 20:29:04 | 显示全部楼层

回帖奖励 +3 鱼币


来学习一下。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-24 19:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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