鱼C论坛

 找回密码
 立即注册
查看: 1348|回复: 13

[已解决]渣渣求助

[复制链接]
发表于 2018-3-23 17:22:01 | 显示全部楼层 |阅读模式

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

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

x
symbols = '!@#$%^&*()_+-=[]\{}|;",./<>?'
chars = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
nums = '0123456789'

password = input('请输入需要检测的密码:')
length = len(password)

while(password.isspace()) or (length < 6):
    password = input('密码过于简单')
    break
   

temp1_length = 0

if length <= 8:
    temp1_length = 1
elif 8 < length < 16:
    tem1_length = 2
else:
    temp1_length = 3


temp2_length = 0

for each in password:
    if each in nums:
        temp2_length += 1
        break

for each in password:
    if each in chars:
        temp2_length += 1
        break

for each in password:
    if each in symbols:
        temp2_length += 1
        break

while 1:
    print('您的密码安全等级为:', end = '')
    if (temp1_length == 1) or (temp2_length == 1):
        print('低')
    elif (temp1_length == 3) and (temp2_length == 3) and (password[0] in chars):
        print('高')
        break
    else:
        print('中')
    print('''请按照以下几种方式修改您的密码:
              1.密码长度必须由字母,数字及特殊字符组成
              2.密码必须由字符开头
              3.密码长度不得低于16位''')
    break
一直得不到密码级别为高的结果,最后把变量名换了才发现.....
为什么标注那里的变量名只能是chars才会得出密码级别为高的结果呢
我把chars换成symbols或者nums都得不到
求大神告知,谢谢
最佳答案
2018-3-23 18:46:52
我叫枫剑 发表于 2018-3-23 18:34
符合要求的,我试了很多次的,只有chars才能得到最高级别的结果

请输入需要检测的密码:%djfajdjf12831239
您的密码安全等级为: 高

判断 in symbols 也没问题。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-23 17:26:08 | 显示全部楼层
逻辑关系吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-23 17:47:14 | 显示全部楼层
因为高级密码的要求是:以字母开头,你的代码的最开头的赋值里面,char是字母的字符串。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-23 18:02:48 | 显示全部楼层
阿bang 发表于 2018-3-23 17:47
因为高级密码的要求是:以字母开头,你的代码的最开头的赋值里面,char是字母的字符串。

那请问应该怎么改呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-23 18:05:30 | 显示全部楼层
我叫枫剑 发表于 2018-3-23 18:02
那请问应该怎么改呀

就判断password[0] in chars,为啥要改?
改成其他就不对了。
你想改什么呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-23 18:09:16 | 显示全部楼层
阿bang 发表于 2018-3-23 18:05
就判断password[0] in chars,为啥要改?
改成其他就不对了。
你想改什么呢?

额。。我的意思是就是把高级密码的要求改成以数字或者字符开头,应该怎么改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-23 18:11:27 | 显示全部楼层
我叫枫剑 发表于 2018-3-23 18:09
额。。我的意思是就是把高级密码的要求改成以数字或者字符开头,应该怎么改

以字母开头是这道题目的要求。

如果你自己要改变题目要求,那就自行改咯。
改成数字开头,你就判断in nums
改成限定字符开头,就判断in symbols
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-23 18:21:55 | 显示全部楼层
阿bang 发表于 2018-3-23 18:11
以字母开头是这道题目的要求。

如果你自己要改变题目要求,那就自行改咯。

对呀,我一开始就是这个意思,然而问题就是,我把chars改成symbols或者nums就得不到‘密码级别为高’这个结果了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-23 18:31:06 | 显示全部楼层
我叫枫剑 发表于 2018-3-23 18:21
对呀,我一开始就是这个意思,然而问题就是,我把chars改成symbols或者nums就得不到‘密码级别为高’这个 ...

那你的输入符合要求了吗?
数字开头,长度大于16,包含三种类型。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-23 18:34:36 | 显示全部楼层
阿bang 发表于 2018-3-23 18:31
那你的输入符合要求了吗?
数字开头,长度大于16,包含三种类型。

符合要求的,我试了很多次的,只有chars才能得到最高级别的结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-23 18:44:37 | 显示全部楼层
我叫枫剑 发表于 2018-3-23 18:34
符合要求的,我试了很多次的,只有chars才能得到最高级别的结果

请输入需要检测的密码:0djfajjfdaj^djfa
您的密码安全等级为: 高

我拿你的代码改成判断in  nums
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-23 18:46:52 | 显示全部楼层    本楼为最佳答案   
我叫枫剑 发表于 2018-3-23 18:34
符合要求的,我试了很多次的,只有chars才能得到最高级别的结果

请输入需要检测的密码:%djfajdjf12831239
您的密码安全等级为: 高

判断 in symbols 也没问题。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-23 19:00:49 | 显示全部楼层
阿bang 发表于 2018-3-23 18:46
请输入需要检测的密码:%djfajdjf12831239
您的密码安全等级为: 高

我靠,这到底什么情况,无语了,有毒吗,为什么我的不可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-23 20:30:23 | 显示全部楼层
不好意思,改成nums我也得到了啊
请输入需要检测的密码:12323322aasdffaqwe!@
您的密码安全等级为:高
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 15:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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