鱼C论坛

 找回密码
 立即注册
查看: 1841|回复: 3

[已解决]H9 三次密码

[复制链接]
发表于 2020-10-31 18:26:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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

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

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

  3. while count:
  4.     passwd = input('请输入密码:')
  5.     if passwd == password:
  6.         print('密码正确,进入程序......')
  7.         break
  8.     elif '*' in passwd:
  9.         print('密码中不能含有"*"号!您还有', count, '次机会!', end=' ')
  10.         continue
  11.     if count-1 != 0:
  12.         print('密码输入错误!您还有', count-1, '次机会!', end=' ')
  13.     else:
  14.         print("密码四次错误,请联系管理员")
  15.     count -= 1
复制代码


关于if判断是count-1,while循环最后一次机会就是count=1的时候,所以count-1,也就是if=0打印联系管理员
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-31 21:52:04 | 显示全部楼层
思路:
最后一次打印也就是count=0时,所以把循环进入条件改成当count不等于0,当count=0时执行循环外语句
代码如下:
  1. count = 3
  2. password = 'FishC.com'

  3. while count != 0:
  4.     passwd = input('请输入密码:')
  5.     if passwd == password:
  6.         print('密码正确,进入程序......')
  7.         break
  8.     elif '*' in passwd:
  9.         print('密码中不能含有"*"号!您还有', count, '次机会!', end=' ')
  10.         continue
  11.     else:
  12.         print('密码输入错误!您还有', count-1, '次机会!', end=' ')   
  13.     count -= 1
  14. print("密码四次错误,请联系管理员")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

您这个运行后还是打印“密码输入错误!您还有 0 次机会! 密码四次错误,请联系管理员”,我希望打印“密码四次错误,请联系管理员”。如何修改呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-3 10:49:18 | 显示全部楼层    本楼为最佳答案   
rychair 发表于 2020-11-2 22:27
您这个运行后还是打印“密码输入错误!您还有 0 次机会! 密码四次错误,请联系管理员”,我希望打印“密 ...

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

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

  3. while count:
  4.     passwd = input('请输入密码:')
  5.     if passwd == password:
  6.         print('密码正确,进入程序......')
  7.         break
  8.     elif '*' in passwd:
  9.         print('密码中不能含有"*"号!您还有', count, '次机会!', end=' ')
  10.         continue
  11.     if count-1 != 0:
  12.         print('密码输入错误!您还有', count-1, '次机会!', end=' ')
  13.     else:
  14.         print("密码四次错误,请联系管理员")
  15.     count -= 1
复制代码


关于if判断是count-1,while循环最后一次机会就是count=1的时候,所以count-1,也就是if=0打印联系管理员
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-13 00:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表