rychair 发表于 2020-10-31 18:26:45

H9 三次密码

设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内。

count = 3
password = 'FishC.com'

while count:
    passwd = input('请输入密码:')
    if passwd == password:
      print('密码正确,进入程序......')
      break
    elif '*' in passwd:
      print('密码中不能含有"*"号!您还有', count, '次机会!', end=' ')
      continue
    else:
      print('密码输入错误!您还有', count-1, '次机会!', end=' ')   
    count -= 1

上面是作业9动动手第一题的答案,如果题目要改为最后一次机会错误后打印,“密码四次错误,请联系管理员”。这个后面怎么改呢?谢谢高手!!!

太阳总会升起 发表于 2020-10-31 21:52:04

思路:
最后一次打印也就是count=0时,所以把循环进入条件改成当count不等于0,当count=0时执行循环外语句
代码如下:
count = 3
password = 'FishC.com'

while count != 0:
    passwd = input('请输入密码:')
    if passwd == password:
      print('密码正确,进入程序......')
      break
    elif '*' in passwd:
      print('密码中不能含有"*"号!您还有', count, '次机会!', end=' ')
      continue
    else:
      print('密码输入错误!您还有', count-1, '次机会!', end=' ')   
    count -= 1
print("密码四次错误,请联系管理员")

rychair 发表于 2020-11-2 22:27:19

太阳总会升起 发表于 2020-10-31 21:52
思路:
最后一次打印也就是count=0时,所以把循环进入条件改成当count不等于0,当count=0时执行循环外语句 ...

您这个运行后还是打印“密码输入错误!您还有 0 次机会! 密码四次错误,请联系管理员”,我希望打印“密码四次错误,请联系管理员”。如何修改呢?

太阳总会升起 发表于 2020-11-3 10:49:18

rychair 发表于 2020-11-2 22:27
您这个运行后还是打印“密码输入错误!您还有 0 次机会! 密码四次错误,请联系管理员”,我希望打印“密 ...

就是说最后一次错误不打印还有0次机会,只打印联系管理员

加了一个if判断,判断当前机会如果不是0,就打印还剩的机会数,如果是0,就打印联系管理员
代码如下:
count = 3
password = 'FishC.com'

while count:
    passwd = input('请输入密码:')
    if passwd == password:
      print('密码正确,进入程序......')
      break
    elif '*' in passwd:
      print('密码中不能含有"*"号!您还有', count, '次机会!', end=' ')
      continue
    if count-1 != 0:
      print('密码输入错误!您还有', count-1, '次机会!', end=' ')
    else:
      print("密码四次错误,请联系管理员")
    count -= 1

关于if判断是count-1,while循环最后一次机会就是count=1的时候,所以count-1,也就是if=0打印联系管理员
页: [1]
查看完整版本: H9 三次密码