本帖最后由 水瓶座 于 2019-1-8 21:03 编辑
codenum = True
num = "1234567890"
pha = "abcdefghijklmnopqrstuvwxyz"
spe = "~!@#$%^&*()_=-/,.?<>;:[]{}|\\"
while codenum:
n = 0
p = 0
s = 0
cd = input('请输入需要检查的密码组合')
if (cd[0] in num == True) or (cd[0] in pha == True):#看第一个字符是什么。
print("第一个字符错了,重来")
continue
for i in cd:#看都包含什么字符
if i in num == True:
n = 1
if i in pha == True:
p = 1
if i in spe == True:
s = 1
flag = n + p + s
if flag == 1 or len(cd)<=8:
print("密码安全级别是低,重设!")
print(flag)
continue
if flag == 2 or len(cd)<=8:
print("密码安全级别是中,重设一下吧!")
print(flag)
continue
if flag == 3 and len(cd)>=16:
print("密码等级是高,可以了")
codenum = False
红色的地方,不知名出错,经测试以下代码正确:
codenum = True
num = "1234567890"
pha = "abcdefghijklmnopqrstuvwxyz"
spe = "~!@#$%^&*()_=-/,.?<>;:[]{}|\\"
while codenum:
n = 0
p = 0
s = 0
cd = input('请输入需要检查的密码组合:')
pdnum = cd[0] in num
pdpha = cd[0] in pha
print(cd[0] in num == True)
if (pdnum == True) or (pdpha == True):#看第一个字符是什么。
print("第一个字符错了,重来")
continue
for i in cd:#看都包含什么字符
if i in num == True:
n = 1
if i in pha == True:
p = 1
if i in spe == True:
s = 1
flag = n + p + s
if flag == 1 or len(cd)<=8:
print("密码安全级别是低,重设!")
print(flag)
continue
if flag == 2 or len(cd)<=8:
print("密码安全级别是中,重设一下吧!")
print(flag)
continue
if flag == 3 and len(cd)>=16:
print("密码等级是高,可以了")
codenum = False
很明显cd[0] in num是True,但是cd[0] in num == True是False,百度搜了搜,发现
if(5 ==len(a)
==len(b)):
print "yes"
按照c的语法规则,显然我们要先从左边第一个“==”开始,
以上题为例,若“5 ==len(a)”​则返回布尔值“True”,然后再比较“True”和“len(b)”是否相等。
但python却是”5== len(a)== len(b)“等价于”5== len(a) and len(a)==len(b)“
于是乎
cd[0] in num == True等价于cd[0] in num and num == True,然后
>>> True and False
False
>>>
然后我找不到形容词了
,懂就行