鱼C论坛

 找回密码
 立即注册
查看: 1727|回复: 5

[已解决]错在哪里?快喝醉了。

[复制链接]
发表于 2020-11-19 13:11:43 | 显示全部楼层 |阅读模式

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

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

x
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
哟,小了小了~~~
喝酒~~~
厉害!下一位


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




最佳答案
2020-11-19 14:34:42
  1.       if guess == secret:
  2.             print("恭喜你答对了")
复制代码

        改为
  1.       if guess == secret:
  2.             print("恭喜你答对了")
  3.             break
复制代码

  1.                   temp =input("请重新输入")
  2.                   guess +int(temp)
复制代码

        改为   
  1.                   temp =input("请重新输入")
  2.                   guess = int(temp)
复制代码

        楼主的代码在键盘输入的部分存在一些重复,我给做了一些优化
  1. import random
  2. secret = random.randint(1,13)
  3. times = 3
  4. print("==========Pyhon004改进游戏02========")
  5. for x in range(times , 0 , -1):
  6.     guess = int(input("输入1~~13 ,猜对过关,猜错喝酒!(最多3次机会) : "))
  7.     if guess == secret:
  8.         print("恭喜你答对了")
  9.         print("厉害!下一位")
  10.         break
  11.     else:
  12.         if guess > secret:
  13.             print("哥,大了大了~~~")
  14.         else:
  15.             print("哟,小了小了~~~")
  16.         if x > 1:
  17.             print("还剩下" , x - 1 ,"次机会")
  18. else:
  19.     print("喝酒~~~")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-19 13:30:10 | 显示全部楼层
应该是等号进行赋值,否则guess的值无法更新
Snipaste_2020-11-19_13-29-18.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-19 13:30:32 | 显示全部楼层


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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-19 14:34:06 | 显示全部楼层
首先是逻辑问题
while条件是guess != secret时才会触发,那么while 中的 guess == secret永远不会触发
不论最后猜对还是没猜对,都会触发“喝酒~~~”“厉害!下一位”
另外第十九行guess +int(temp)   需要修改为guess =int(temp)   

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

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

  8.         if guess > secret:
  9.               print("哥,大了大了~~~")
  10.         else:
  11.               print("哟,小了小了~~~")
  12.         times = times - 1
  13.         if times > 0:
  14.               print("最后第"+str(times)+"次机会")
  15.               temp =input("请重新输入")
  16.               guess =int(temp)   
  17.         else:
  18.               print("机会都用完啦,喝酒吧~~~")

  19. if guess == secret:
  20.         print("恭喜你答对了")
  21.         print("厉害!下一位")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-19 14:34:42 | 显示全部楼层    本楼为最佳答案   
  1.       if guess == secret:
  2.             print("恭喜你答对了")
复制代码

        改为
  1.       if guess == secret:
  2.             print("恭喜你答对了")
  3.             break
复制代码

  1.                   temp =input("请重新输入")
  2.                   guess +int(temp)
复制代码

        改为   
  1.                   temp =input("请重新输入")
  2.                   guess = int(temp)
复制代码

        楼主的代码在键盘输入的部分存在一些重复,我给做了一些优化
  1. import random
  2. secret = random.randint(1,13)
  3. times = 3
  4. print("==========Pyhon004改进游戏02========")
  5. for x in range(times , 0 , -1):
  6.     guess = int(input("输入1~~13 ,猜对过关,猜错喝酒!(最多3次机会) : "))
  7.     if guess == secret:
  8.         print("恭喜你答对了")
  9.         print("厉害!下一位")
  10.         break
  11.     else:
  12.         if guess > secret:
  13.             print("哥,大了大了~~~")
  14.         else:
  15.             print("哟,小了小了~~~")
  16.         if x > 1:
  17.             print("还剩下" , x - 1 ,"次机会")
  18. else:
  19.     print("喝酒~~~")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-19 17:51:51 | 显示全部楼层
学习第1天。感谢各位大神。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 10:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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