贼拉苏 发表于 2019-2-8 13:02:27

设置了三次输入错误重输入,最后一次循环不能输入

本帖最后由 贼拉苏 于 2019-2-8 13:03 编辑

为什么最后一次不能输入,大神求助,新手学习中,python版本为3.7.2

ba21 发表于 2019-2-8 13:05:58

没问题吧。
改成4不就好了

heidern0612 发表于 2019-2-8 13:12:46

因为你输入三次错误的时候,time就已经为0了。
把time改成4,程序里打印的那句改成time-1就行了。

贼拉苏 发表于 2019-2-8 14:05:30

ba21 发表于 2019-2-8 13:05
没问题吧。
改成4不就好了

谢谢知道了

贼拉苏 发表于 2019-2-8 14:09:30

本帖最后由 贼拉苏 于 2019-2-8 14:14 编辑

ba21 发表于 2019-2-8 13:05
没问题吧。
改成4不就好了

大佬还是最后一次不能输入,我知道了time-1执行位置放错了,执行的时候,最后一次后面time还是大于1的但是到后面减了time=0所以就不能循环输入了

像番茄加两个蛋 发表于 2019-2-8 16:24:33

time=3
mima='123456'
while time:
    shuru = input('请输入密码:')
    #每输入一次次数就减去1
    time-=1
    if shuru == mima:
      print('密码正确')
      break
    else:
      #如果密码不对就判断输入的次数
      if(time == 0):
            print('您输错次数过多,请稍后再试!')
      else:
            print('密码错误,你还有'+str(time)+'次机会')楼主您可以参考一下我写的代码,您的代码逻辑有点乱,不过初学很正常的。井号是注释。

ba21 发表于 2019-2-8 17:55:09

贼拉苏 发表于 2019-2-8 14:09
大佬还是最后一次不能输入,我知道了time-1执行位置放错了,执行的时候,最后一次后面time还是大于1的 ...

因为你输入三次错误的时候,time就已经为0了。
把time改成4,程序里打印的那句改成str(int(time)-1)就行了。

time-=1位置没错

answer如约 发表于 2019-2-8 19:17:54

同意楼上意见,在不改变time-=1的位置情况下,请修改成str(int(time)-1),打印输入错误1次机会时 time=0 ,循环已经执行了三次了。
页: [1]
查看完整版本: 设置了三次输入错误重输入,最后一次循环不能输入