程序没有输出预期结果 找不出原因
count那边的好像是错的 为什么呢? 求解答{:10_254:} ..发文本代码 #密码安全性检查代码:sym1 = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
sym2 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
temp = input('请输入需要检查的密码:')
if len(temp) == 0:
print('输入密码为空,请重新输入:', end = '')
elif (temp.isdigit() or len(temp) <= 8):
print('您的密码安全级别评定为:低')
print('''请按以下方式提升您的密码安全级别:
1.密码必须由数字、字母及特殊字符三种组合
2.密码只能由字母开头
3.密码长度不能低于16位''')
elif (len(temp)>=16):
for each in temp:
count = 0
if each in sym1:
count = count + 1
if (count == 3) and (temp in sym2):
print('您的密码安全级别评定为:高')
print('请继续保持')
elif (len(temp)>=8):
count = 0
for i in temp:
if i in sym2:
count = count + 1
if count == 2:
print('您的密码安全级别评定为:中')
print('''请按以下方式提升您的密码安全级别:
1.密码必须由数字、字母及特殊字符三种组合
2.密码只能由字母开头
3.密码长度不能低于16位''') 粗略的看了一下,第15行应该放在13和14之间
因为你那个 for 循环,每执行一层都会初始化 count 为 0
而你的预期是先初始化为0,在下一次执行 for 循环的时候重新初始化为0 Daniel_Zhang 发表于 2021-2-15 16:39
粗略的看了一下,第15行应该放在13和14之间
因为你那个 for 循环,每执行一层都会初始化 count 为 0
elif (8<len(temp)<16):
count = 0
for each in temp:
if each in sym2:
count = count + 1
if count == 2:
print('您的密码安全级别评定为:中')
print('''请按以下方式提升您的密码安全级别:
1.密码必须由数字、字母及特殊字符三种组合
2.密码只能由字母开头
3.密码长度不能低于16位''')
#那这一部分的代码错误在哪里呢? 当输入:WS{ABCBA}SB 时什么都没有打印出来..{:10_266:} 无枝为檄 发表于 2021-2-15 16:54
#那这一部分的代码错误在哪里呢? 当输入:WS{ABCBA}SB 时什么都没有打印出来..
你看哈,理论上是进入了 elif (8<len(temp)<16)
但是为什么什么都没有打印出来呢
你有没有注意到,你设置了只有当 count == 2 的时候才能打印
你可以尝试一下打印 count 看看到底 count 是多少
没算错的话,count 是 9,肯定是不满足 count == 2 的,自然不会打印出来
count == 2 表示的是当 count 为 2 时执行 Daniel_Zhang 发表于 2021-2-15 23:11
你看哈,理论上是进入了 elif (8
我懂了 灰常感谢!!{:10_323:}
页:
[1]