鱼C论坛

 找回密码
 立即注册
查看: 1785|回复: 9

[已解决]猜数小游戏出现错误,不知道原因

[复制链接]
发表于 2017-7-9 18:44:02 | 显示全部楼层 |阅读模式

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

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

x
  1. print("我的第一个小游戏")
  2. print("游戏开始了,你总共有3次机会")
  3. import random

  4. temp = 0
  5. flag = 0
  6. secret = 6
  7. temp = input("请输入一个数字:")
  8. times = 2

  9. while temp.isdigit() != True:
  10.     print("你输入的不是一个数字","请重新输入一个数:")
  11.     temp = input("请输入一个数字:")
  12. while (flag == 0) and (times > 0):
  13.     times -= 1
  14.     guess = int(temp)
  15.     if guess == secret:
  16.         flag == 1
  17.         print("猜对了!")
  18.         #print("caiduile ")
  19.     else:
  20.         if guess > secret:
  21.             print("大了大了")
  22.         else:
  23.             print("小了小了")

  24.         temp = input("请重新输入一个数字:")
  25.         print("你还剩余",times,"次机会")   

  26.         if times > 0:
  27.             continue
  28.         else:
  29.             print("游戏次数没了")
  30.    

  31. print("游戏结束!")
复制代码

最佳答案
2017-7-9 21:22:49
nelsonw 发表于 2017-7-9 21:13
第一个是,输入6,应该只输出一个猜对了
第二个是,我想实现的是在还有两次机会的时候也提示出来
我想 ...

2017-07-09_212118.png



  1. print("我的第一个小游戏")
  2. print("游戏开始了,你总共有3次机会")
  3. import random

  4. temp = 0
  5. flag = 0
  6. secret = 6
  7. temp = input("请输入一个数字:")
  8. times = 2

  9. while temp.isdigit() != True:
  10.     print("你输入的不是一个数字","请重新输入一个数:")
  11.     temp = input("请输入一个数字:")
  12. while (flag == 0) and (times > 0):
  13.     times -= 1
  14.     guess = int(temp)
  15.     if guess == secret:
  16.         flag == 1
  17.         print("猜对了!")
  18.         break
  19.         #print("caiduile ")
  20.     else:
  21.         if guess > secret:
  22.             print("大了大了")
  23.         else:
  24.             print("小了小了")
  25.         print("你还剩余",times+1,"次机会")  
  26.         temp = input("请重新输入一个数字:")
  27.          

  28.         if times > 0:
  29.             continue
  30.         else:
  31.             print("游戏次数没了")
  32.    

  33. print("游戏结束!")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-7-9 22:18:38 | 显示全部楼层
shuofxz 发表于 2017-7-9 22:13
下面是改过的程序  17行flag = 1而不是==,后面显示次数的那块,我的理解是应该先提示还剩几次,再输入数字 ...

谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-9 22:17:54 | 显示全部楼层

。。多谢指点!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-9 22:15:07 | 显示全部楼层
nelsonw 发表于 2017-7-9 22:02
请问为什么要加入break?我已经把标志位置为1了,按照逻辑,下一次判断不会进循环

你写错了   第十八行 flag == 1 应该写成 flag = 1  是赋值 而不是flag恒等于1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-9 22:13:39 | 显示全部楼层
nelsonw 发表于 2017-7-9 22:02
请问为什么要加入break?我已经把标志位置为1了,按照逻辑,下一次判断不会进循环

2017-07-09_221216.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-9 22:13:19 | 显示全部楼层
下面是改过的程序  17行flag = 1而不是==,后面显示次数的那块,我的理解是应该先提示还剩几次,再输入数字,所以把print("你还剩余",times,"次机会") 这行提到了input()前面,同时times值的改变也换了个地方
  1. print("我的第一个小游戏")
  2. print("游戏开始了,你总共有3次机会")
  3. import random

  4. temp = 0
  5. flag = 0
  6. secret = 6
  7. temp = input("请输入一个数字:")
  8. times = 2

  9. while temp.isdigit() != True:
  10.     print("你输入的不是一个数字","请重新输入一个数:")
  11.     temp = input("请输入一个数字:")
  12. while (flag == 0) and (times > 0):
  13.     guess = int(temp)
  14.     if guess == secret:
  15.         flag = 1
  16.         print("猜对了!")
  17.         #print("caiduile ")
  18.     else:
  19.         if guess > secret:
  20.             print("大了大了")
  21.         else:
  22.             print("小了小了")

  23.         print("你还剩余",times,"次机会")
  24.         times -= 1
  25.         temp = input("请重新输入一个数字:")
  26.             
  27.         if times > 0:
  28.             continue
  29.         else:
  30.             print("游戏次数没了")
  31.    

  32. print("游戏结束!")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-9 22:02:16 | 显示全部楼层

请问为什么要加入break?我已经把标志位置为1了,按照逻辑,下一次判断不会进循环
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-9 21:22:49 | 显示全部楼层    本楼为最佳答案   
nelsonw 发表于 2017-7-9 21:13
第一个是,输入6,应该只输出一个猜对了
第二个是,我想实现的是在还有两次机会的时候也提示出来
我想 ...

2017-07-09_212118.png



  1. print("我的第一个小游戏")
  2. print("游戏开始了,你总共有3次机会")
  3. import random

  4. temp = 0
  5. flag = 0
  6. secret = 6
  7. temp = input("请输入一个数字:")
  8. times = 2

  9. while temp.isdigit() != True:
  10.     print("你输入的不是一个数字","请重新输入一个数:")
  11.     temp = input("请输入一个数字:")
  12. while (flag == 0) and (times > 0):
  13.     times -= 1
  14.     guess = int(temp)
  15.     if guess == secret:
  16.         flag == 1
  17.         print("猜对了!")
  18.         break
  19.         #print("caiduile ")
  20.     else:
  21.         if guess > secret:
  22.             print("大了大了")
  23.         else:
  24.             print("小了小了")
  25.         print("你还剩余",times+1,"次机会")  
  26.         temp = input("请重新输入一个数字:")
  27.          

  28.         if times > 0:
  29.             continue
  30.         else:
  31.             print("游戏次数没了")
  32.    

  33. print("游戏结束!")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-9 21:13:24 | 显示全部楼层
ba21 发表于 2017-7-9 18:58
错在何处????

第一个是,输入6,应该只输出一个猜对了
第二个是,我想实现的是在还有两次机会的时候也提示出来
我想实现小甲鱼老师布置作业的结果,但是实现出来没有对
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-9 18:58:09 | 显示全部楼层
错在何处????

2017-07-09_185647.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-8 04:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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