无枝为檄 发表于 2021-2-15 16:06:18

程序没有输出预期结果 找不出原因

count那边的好像是错的 为什么呢? 求解答{:10_254:}

qiuyouzhi 发表于 2021-2-15 16:07:29

..发文本代码

无枝为檄 发表于 2021-2-15 16:31:13

#密码安全性检查代码:
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位''')

Daniel_Zhang 发表于 2021-2-15 16:39:21

粗略的看了一下,第15行应该放在13和14之间

因为你那个 for 循环,每执行一层都会初始化 count 为 0

而你的预期是先初始化为0,在下一次执行 for 循环的时候重新初始化为0

无枝为檄 发表于 2021-2-15 16:54:03

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:}

Daniel_Zhang 发表于 2021-2-15 23:11:27

无枝为檄 发表于 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 时执行

无枝为檄 发表于 2021-2-16 10:22:09

Daniel_Zhang 发表于 2021-2-15 23:11
你看哈,理论上是进入了 elif (8

我懂了 灰常感谢!!{:10_323:}
页: [1]
查看完整版本: 程序没有输出预期结果 找不出原因