鱼C论坛

 找回密码
 立即注册
查看: 5025|回复: 17

[已解决]Python猜大小游戏中一个有关循环的问题

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

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

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

x
第一张是本人所写的代码,运行后却出现了如图二所示的错误,程序直接跳过了if times == 1:
            print("还有一次机会:",end="")
      ,        请问接下来该如何修改呢?编程零基础小白一只,恳求高人指点。
最佳答案
2017-7-14 12:19:12
times = times -1
加在倒数第七第八行之间和倒数第九第十行之间

运行后

运行后

这是本人写的代码

这是本人写的代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-14 12:19:12 | 显示全部楼层    本楼为最佳答案   
times = times -1
加在倒数第七第八行之间和倒数第九第十行之间
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-7-14 12:21:56 | 显示全部楼层
新手·ing 发表于 2017-7-14 12:19
times = times -1
加在倒数第七第八行之间和倒数第九第十行之间

请问方便说明一下原因吗,还有一个问题:为什么开头要给 guess 赋值 0  ? 是只能赋值0还有除了1到10的其他数字均可呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-14 12:24:23 | 显示全部楼层
真霄 发表于 2017-7-14 12:21
请问方便说明一下原因吗,还有一个问题:为什么开头要给 guess 赋值 0  ? 是只能赋值0还有除了1到10的其 ...

赋值一个不是答案的数就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-14 12:26:30 | 显示全部楼层
新手·ing 发表于 2017-7-14 12:24
赋值一个不是答案的数就行

谢谢您,你知道为什么要加 times = times - 1 在倒数七八行间吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-14 12:33:01 | 显示全部楼层
新手·ing 发表于 2017-7-14 12:24
赋值一个不是答案的数就行

您好,我已经理解了times - 1
但是按您的方法运行后,直接跳过了第二次机会,请问是怎么回事呢?
【这是一个赌徒游戏,猜数字一到十
答对者才能活下来
我将给你三次机会
现在猜猜我在想哪个数字:3
小了一点
还有一次机会:】
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-14 12:33:26 | 显示全部楼层
真霄 发表于 2017-7-14 12:26
谢谢您,你知道为什么要加 times = times - 1 在倒数七八行间吗

如果打印大了或者小了就说明打错了,次数减一
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-14 12:33:54 | 显示全部楼层
新手·ing 发表于 2017-7-14 12:33
如果打印大了或者小了就说明打错了,次数减一

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

使用道具 举报

发表于 2017-7-14 12:37:46 | 显示全部楼层

如果我的答案帮助到了你,请给最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-14 12:38:54 | 显示全部楼层

大家都是一个论坛的,就应该互帮互助,不用‘您’的,不是折损我嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-14 13:20:29 | 显示全部楼层
新手·ing 发表于 2017-7-14 12:37
如果我的答案帮助到了你,请给最佳答案

按您的方法运行后,直接跳过了第二次机会,请问是怎么回事呢?
【这是一个赌徒游戏,猜数字一到十
答对者才能活下来
我将给你三次机会
现在猜猜我在想哪个数字:3
小了一点
还有一次机会:】
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-14 13:25:34 | 显示全部楼层
新手·ing 发表于 2017-7-14 12:38
大家都是一个论坛的,就应该互帮互助,不用‘您’的,不是折损我嘛
  1. import random
  2. secret = random.randint(1,10)
  3. times = 3
  4. guess = 0
  5. print('---------------赌徒游戏---------------')
  6. print("这是一个赌徒游戏,猜数字一到十")
  7. print("答对者才能活下来")
  8. print("我将给你三次机会")
  9. print("现在猜猜我在想哪个数字:",end="")
  10. while (guess != secret) and (times != 0):
  11.     temp = input()
  12.     while not temp.isdigit():
  13.         temp = input("提示你一下,是整数:")
  14.     guess = int(temp)
  15.     times = times - 1 #玩家机会减一
  16.     if guess == secret:
  17.         print("你答对了")
  18.         print("走吧")
  19.     else:
  20.         if guess > secret:
  21.             print("大了一点")
  22.             times = times - 1
  23.         else:
  24.             print("小了一点")
  25.             times = times - 1      
  26.         if times == 2:
  27.             print("还有两次机会:",end="")
  28.         if times == 1:
  29.             print("还有一次机会:",end="")
  30.         else:
  31.             print('你没机会了')
  32.             print("你被杀手杀死了")
复制代码




这是按你的意见改进后的代码,程序运行后直接跳过了【还有两次机会】
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-14 15:19:57 | 显示全部楼层
真霄 发表于 2017-7-14 13:25
这是按你的意见改进后的代码,程序运行后直接跳过了【还有两次机会】

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

使用道具 举报

发表于 2017-7-14 15:20:33 | 显示全部楼层
真霄 发表于 2017-7-14 13:25
这是按你的意见改进后的代码,程序运行后直接跳过了【还有两次机会】

你倒是把第十五行删掉啊。。。怪我没说清楚
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-14 15:52:22 | 显示全部楼层
新手·ing 发表于 2017-7-14 15:20
你倒是把第十五行删掉啊。。。怪我没说清楚

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

使用道具 举报

 楼主| 发表于 2017-7-14 15:59:41 | 显示全部楼层
新手·ing 发表于 2017-7-14 15:20
你倒是把第十五行删掉啊。。。怪我没说清楚

哈哈,我找到问题所在了,我自己蠢了.....最后的忘了终止循环了
这是我修改过的,已经可以按理想运行了,谢谢您的帮助
  1. import random
  2. secret = random.randint(1,10)
  3. times = 3
  4. guess = 0
  5. print('---------------赌徒游戏---------------')
  6. print("这是一个赌徒游戏,猜数字一到十")
  7. print("答对者才能活下来")
  8. print("我将给你三次机会")
  9. print("现在猜猜我在想哪个数字:",end="")
  10. while (guess != secret) and (times != 0):
  11.     temp = input()
  12.     while not temp.isdigit():
  13.         temp = input("提示你一下,是整数:")
  14.     guess = int(temp)
  15.     if guess == secret:
  16.         print("你答对了")
  17.         print("走吧")
  18.     else:
  19.         if guess > secret:
  20.             print("大了一点")
  21.             times = times - 1
  22.         else:
  23.             print("小了一点")
  24.             times = times - 1      
  25.     if times == 2:
  26.         print("还有两次机会:",end="")
  27.     if times == 1:
  28.         print("还有一次机会:",end="")
  29. else:
  30.     print('你没机会了')
  31.     print("你被杀手杀死了")

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

使用道具 举报

发表于 2017-7-14 16:05:54 | 显示全部楼层
真霄 发表于 2017-7-14 15:59
哈哈,我找到问题所在了,我自己蠢了.....最后的忘了终止循环了
这是我修改过的,已经可以按理想运行了 ...

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

使用道具 举报

 楼主| 发表于 2017-7-15 00:54:33 | 显示全部楼层
以上其实还有问题,[当第一次猜到正确答案时,会连带执行30,31行代码],故修改后在17,18行之中加入break语句,解决问题.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 08:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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