7716539 发表于 2020-11-19 13:11:43

错在哪里?快喝醉了。

import random
secret = random.randint(1,13)
times = 3
print("==========Pyhon004改进游戏02========")
temp = input("输入1~~13,猜对过关,猜错喝酒!(最多3次机会)")
guess = int(temp)
while (guess != secret) and (times>0):
      if guess == secret:
            print("恭喜你答对了")
      else:
            if guess > secret:
                  print("哥,大了大了~~~")
            else:
                  print("哟,小了小了~~~")
            times = times - 1
            if times > 0:
                  print("最后第"+str(times)+"次机会")
                  temp =input("请重新输入")
                  guess +int(temp)   
            else:
                  print("喝酒~~~")
print("厉害!下一位")

==========Pyhon004改进游戏02========
输入1~~13,猜对过关,猜错喝酒!(最多3次机会)2
哟,小了小了~~~
最后第2次机会
请重新输入12
哟,小了小了~~~
最后第1次机会
请重新输入13
哟,小了小了~~~
喝酒~~~
厉害!下一位


最后一次输入是正确的,为什么还有哟,小了小了~~~
喝酒~~~




Brick_Porter 发表于 2020-11-19 13:30:10

应该是等号进行赋值,否则guess的值无法更新

Twilight6 发表于 2020-11-19 13:30:32



第十九行 guess + int(temp) 应该改成 guess = int(temp)

逃兵 发表于 2020-11-19 14:34:06

首先是逻辑问题
while条件是guess != secret时才会触发,那么while 中的 guess == secret永远不会触发
不论最后猜对还是没猜对,都会触发“喝酒~~~”“厉害!下一位”
另外第十九行guess +int(temp)   需要修改为guess =int(temp)   

我们这里修改一下逻辑,如果三次内猜对,触发“厉害!下一位”
如果三次都猜错了,触发“喝酒~~~”

import random
secret = random.randint(1,13)
times = 3
print("==========Pyhon004改进游戏02========")
temp = input("输入1~~13,猜对过关,猜错喝酒!(最多3次机会)")
guess = int(temp)
while (guess != secret) and (times>0): #不相等时进入while

      if guess > secret:
            print("哥,大了大了~~~")
      else:
            print("哟,小了小了~~~")
      times = times - 1
      if times > 0:
            print("最后第"+str(times)+"次机会")
            temp =input("请重新输入")
            guess =int(temp)   
      else:
            print("机会都用完啦,喝酒吧~~~")

if guess == secret:
      print("恭喜你答对了")
      print("厉害!下一位")

jackz007 发表于 2020-11-19 14:34:42

      if guess == secret:
            print("恭喜你答对了")
      改为
      if guess == secret:
            print("恭喜你答对了")
            break

                  temp =input("请重新输入")
                  guess +int(temp)
      改为   
                  temp =input("请重新输入")
                  guess = int(temp)
      楼主的代码在键盘输入的部分存在一些重复,我给做了一些优化
import random
secret = random.randint(1,13)
times = 3
print("==========Pyhon004改进游戏02========")
for x in range(times , 0 , -1):
    guess = int(input("输入1~~13 ,猜对过关,猜错喝酒!(最多3次机会) : "))
    if guess == secret:
      print("恭喜你答对了")
      print("厉害!下一位")
      break
    else:
      if guess > secret:
            print("哥,大了大了~~~")
      else:
            print("哟,小了小了~~~")
      if x > 1:
            print("还剩下" , x - 1 ,"次机会")
else:
    print("喝酒~~~")

7716539 发表于 2020-11-19 17:51:51

学习第1天。感谢各位大神。
页: [1]
查看完整版本: 错在哪里?快喝醉了。