坚持每日一问
symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'
passwd = input('请输入需要检查的密码组合:')
# 判断长度
length = len(passwd)
while (passwd.isspace() or length == 0) :
passwd = input("您输入的密码为空(或空格),请重新输入:")
length = len(passwd)
if length <= 8:
flag_len = 1
elif 8 < length < 16:
flag_len = 2
else:
flag_len = 3
flag_con = 0
# 判断是否包含特殊字符
for each in passwd:
if each in symbols:
flag_con += 1
break
# 判断是否包含字母
for each in passwd:
if each in chars:
flag_con += 1
break
# 判断是否包含数字
for each in passwd:
if each in nums:
flag_con += 1
break
# 打印结果
while 1 :
print("您的密码安全级别评定为:", end='')
if flag_len == 1 or flag_con == 1 :
print("低")
elif flag_len == 3 and flag_con == 3 and (passwd in chars):
print("高")
print("请继续保持")
break
else:
print("中")
print("请按以下方式提升您的密码安全级别:\n\
\t1. 密码必须由数字、字母及特殊字符三种组合\n\
\t2. 密码只能由字母开头\n\
\t3. 密码长度不能低于16位")
break
有个两个问题,1 flag_len和flag_con怎么来的,为什么要加个flag?
2.break后面不要加判定条件之类的吗?就这样光秃秃的带着没问题吗? 加不加都一样啦,不过一般来说带flag的就是标志
break不能加条件,直接把break放进if里就可以了 1.flag_len 和 flag_con 只是 你自己定义的变量名字,
既然是名字当然可以随便取。
加flag的原因应该是为了加强代码的可读性 永恒的蓝色梦想 发表于 2020-4-13 20:19
加不加都一样啦,不过一般来说带flag的就是标志
break不能加条件,直接把break放进if里就可以了
那这里break是干嘛用的啊?它不应该用来限制什么的吗? 人人人示走刀口 发表于 2020-4-13 21:13
那这里break是干嘛用的啊?它不应该用来限制什么的吗?
break 是用来退出循环的啊?!!?
页:
[1]