猿问

Python if语句问题,控制密码长度问题,求大神解救。

#密码检查
letter="qwertyuioplkjhgfdsazxcvbnmMNBVCXZLKJHGFDSAPOIUYTREWQ"
num="0123456789"
char='~!@#$%^&*()_=-/,.?<>;:[]{}|\'
passwd = input("请输入要检查的密码: ")
leng=0
if (len(passwd)<=7) and passwd in letter or passwd in num:
print('输入密码为高危')
elif passwd in letter and passwd in num and passwd in char and 8 print('输入密码为低危')
elif passwd in letter and passwd in num and passwd in char and leng>=8:
print('输入的密码为中危')
else:
print('输入的密码过长或者过短{}'.format(str(passwd)))

   为什么我输入7个数或者7个字母的时候,直接跳到了else执行后边print语句,如果输入2个或者3个数值或者字母又可以执行if后边的print语句,好奇怪。求大神解救。


绝地无双
浏览 368回答 2
2回答

噜噜哒

你的代码没有格式化就贴在这里,少了很多字符,缩进也不对了比如elif passwd in letter and passwd in num and passwd in char and&nbsp;8&nbsp;print('输入密码为低危')实在不知道你的条件是什么你也没有说清楚你的逻辑什么,你的高危、中危、低危的定义是什么,而“密码过短”和“密码高危”两个的定义又是重叠的。
随时随地看视频慕课网APP
我要回答