鱼C论坛

 找回密码
 立即注册
查看: 3253|回复: 6

[已解决]恳请高手帮忙看下为什么下面这个coding达不到要求

[复制链接]
发表于 2018-6-25 13:22:56 | 显示全部楼层 |阅读模式

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

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

x
代码目的: 密码最多输入三次, 其中*不计次数

求助: 第一次,第二次输入错误, 第三次输入正确的密码为何同样打印出密码错误, 却没有执行第一个循环呢?

count = 3
password = 'bbb'
temp = input('请输入密码:')
while count:
   
    if temp == password:
        print('密码正确,loading...')
        break
    elif '*' in temp:
        temp = input("密码错误,不能带有‘*’,你还有 %d 次机会,请重新输入:"%count)
    else:
        count -= 1
        temp = input("密码错误,你还有 %d 次机会,请重新输入:"%count)
        if count == 1:
            print("密码错误,游戏结束")
            break
最佳答案
2018-6-25 17:03:39
arbsteven 发表于 2018-6-25 16:40
老铁,改了之后,前面2次输入错误的PW, 最后一次输入正确的PW,打印出的结果还是不对(应该打印出密码正 ...

逻辑有点问题,应该先判断count是否为零再接收输入

  1. count = 3
  2. password = 'bbb'
  3. temp = input('请输入密码:')
  4. while count:
  5.     if temp == password:
  6.         print('密码正确,loading...')
  7.         break
  8.     elif '*' in temp:
  9.         temp = input("密码错误,不能带有‘*’,你还有 %d 次机会,请重新输入:"%count)
  10.     else:
  11.         count -= 1        
  12.         if count == 0:
  13.             print("密码错误,游戏结束")
  14.             break
  15.         temp = input("密码错误,你还有 %d 次机会,请重新输入:"%count)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-6-25 14:04:43 | 显示全部楼层
最后的if条件改为 count==0
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-25 14:09:52 | 显示全部楼层
BngThea 发表于 2018-6-25 14:04
最后的if条件改为 count==0

这个试过了,如果改为0就会允许第四次输入密码。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-25 14:32:58 | 显示全部楼层
arbsteven 发表于 2018-6-25 14:09
这个试过了,如果改为0就会允许第四次输入密码。

把while循环的条件改为 count-1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-25 16:40:14 | 显示全部楼层
BngThea 发表于 2018-6-25 14:32
把while循环的条件改为 count-1

老铁,改了之后,前面2次输入错误的PW, 最后一次输入正确的PW,打印出的结果还是不对(应该打印出密码正确,loading...)

请输入密码:q
密码错误,你还有 2 次机会,请重新输入:w
密码错误,你还有 1 次机会,请重新输入:bbb
密码错误,游戏结束
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-25 17:03:39 | 显示全部楼层    本楼为最佳答案   
arbsteven 发表于 2018-6-25 16:40
老铁,改了之后,前面2次输入错误的PW, 最后一次输入正确的PW,打印出的结果还是不对(应该打印出密码正 ...

逻辑有点问题,应该先判断count是否为零再接收输入

  1. count = 3
  2. password = 'bbb'
  3. temp = input('请输入密码:')
  4. while count:
  5.     if temp == password:
  6.         print('密码正确,loading...')
  7.         break
  8.     elif '*' in temp:
  9.         temp = input("密码错误,不能带有‘*’,你还有 %d 次机会,请重新输入:"%count)
  10.     else:
  11.         count -= 1        
  12.         if count == 0:
  13.             print("密码错误,游戏结束")
  14.             break
  15.         temp = input("密码错误,你还有 %d 次机会,请重新输入:"%count)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-26 09:18:10 | 显示全部楼层
BngThea 发表于 2018-6-25 17:03
逻辑有点问题,应该先判断count是否为零再接收输入

一语中的!特别感谢,高手   
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-2 19:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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