鱼C论坛

 找回密码
 立即注册
查看: 3110|回复: 13

[已解决]004讲改进我们的小游戏能否这样改

[复制链接]
发表于 2018-11-29 17:23:59 | 显示全部楼层 |阅读模式

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

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

x
大家好,我今天听了004讲,觉得小甲鱼老师讲的那个while 循环下面包含了‘ guess == 8’ 不太能接受,所以我这样改进while循环。但是为什么输入其它数字后 再输入8,不能提示猜中的语句。恳请大家帮我看下是哪里出了问,谢谢!

temp = input ('猜猜小甲鱼心里现在想的是那个数字:')
guess = int (temp)
if guess == 8:
    print('你是小甲鱼心里的蛔虫吗?')
    print('猜中了也没有奖励!')
else :
    while guess != 8 :
        temp= input('哎呀,猜错了,请重新输入:')
        guess = int (temp)
        if guess > 8 :
            print ('哥,大了,大了!')
        else:
            print('嘿,小了,小了!')
print('不玩了,游戏结束!')

以上是代码部分,下面是模块运行显示的结果:
1.第一次输入 8:

猜猜小甲鱼心里现在想的是那个数字:8
你是小甲鱼心里的蛔虫吗?
猜中了也没有奖励!
不玩了,游戏结束!

2.多次猜测之后输入8:
猜猜小甲鱼心里现在想的是那个数字:6
哎呀,猜错了,请重新输入:4
嘿,小了,小了!
哎呀,猜错了,请重新输入:2
嘿,小了,小了!
哎呀,猜错了,请重新输入:7
嘿,小了,小了!
哎呀,猜错了,请重新输入:9
哥,大了,大了!
哎呀,猜错了,请重新输入:19
哥,大了,大了!
哎呀,猜错了,请重新输入:8
嘿,小了,小了!
不玩了,游戏结束!



最佳答案
2018-11-29 18:08:16
fatima 发表于 2018-11-29 17:52
谢谢你帮忙看问题并解答!
我思路是:等于8是不需要循环的,所以,不等于8的才要循环。
所以,if =8 ,直 ...

那你就不要用while !=8来循环,你可以用while True, 遇到 ==8的情况直接break ,print。不等于8的情况下就一直循环判断不就行了么?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-11-29 17:28:36 | 显示全部楼层
因为你的猜中在if里,开始不猜中就没可能回if了,就只在else的while里循环
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-11-29 17:30:16 | 显示全部楼层
if语句和else语句是并列的关系,只能进一个分支,就像河流似的,不能进了一个分支之后再回来进另外一个分支了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-29 17:46:36 | 显示全部楼层
直接给你讲述你的第二个情况吧!

  1.   while guess != 8 :
  2.         temp= input('哎呀,猜错了,请重新输入:')
  3.         guess = int (temp)
  4.         if guess > 8 :
  5.             print ('哥,大了,大了!')
  6.         else:
  7.             print('嘿,小了,小了!')
复制代码



当你第一次不输入8的时候,程序会直接进入这个部分进行循环,当在这个循环中输入8的时候,就会产生你说的那种情况
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-11-29 17:52:51 | 显示全部楼层
谢谢你帮忙看问题并解答!
我思路是:等于8是不需要循环的,所以,不等于8的才要循环。
所以,if =8 ,直接游戏 结束,没问题。
else != 8 时,我用循环,但是问题来了
其实我说的重点应该是,我输入其他数字没问题,再输入8后,它的提示变成:
‘嘿,小了,小了!
不玩了,游戏结束!‘
根据我的代码,应该是提示    ’你不是小甲鱼肚子里的蛔虫吧,。。。,猜对了也。。。’  和 ‘不玩了,游戏结束!‘

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

使用道具 举报

发表于 2018-11-29 18:08:16 | 显示全部楼层    本楼为最佳答案   
fatima 发表于 2018-11-29 17:52
谢谢你帮忙看问题并解答!
我思路是:等于8是不需要循环的,所以,不等于8的才要循环。
所以,if =8 ,直 ...

那你就不要用while !=8来循环,你可以用while True, 遇到 ==8的情况直接break ,print。不等于8的情况下就一直循环判断不就行了么?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-11-29 18:10:54 | 显示全部楼层
我叫MD 发表于 2018-11-29 17:46
直接给你讲述你的第二个情况吧!

我明白你的意思了。谢谢你!
还有个问题,老师讲的while 的条件为什么是 ’guess != 8 ‘,然后里面还包含了’ guess == 8 ‘的情况 ,按while 规律,这个条件为false ,不执行操作 ,游戏直接结束才对。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-29 18:13:42 | 显示全部楼层
heidern0612 发表于 2018-11-29 18:08
那你就不要用while !=8来循环,你可以用while True, 遇到 ==8的情况直接break ,print。不等于8的情况下 ...

IT新手上路,没有学break .
多谢多谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-29 18:16:30 | 显示全部楼层
塔利班 发表于 2018-11-29 17:28
因为你的猜中在if里,开始不猜中就没可能回if了,就只在else的while里循环

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

使用道具 举报

发表于 2018-11-29 18:16:39 | 显示全部楼层
fatima 发表于 2018-11-29 18:13
IT新手上路,没有学break .
多谢多谢!

你都学到while了,break就不算超纲了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-29 18:20:07 | 显示全部楼层
heidern0612 发表于 2018-11-29 18:16
你都学到while了,break就不算超纲了。

我只学了鱼C的Python课,他的0-4讲里还没涉及到break。这样也好,提前查下break的用法。
新手,崭新的手!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-29 18:33:28 | 显示全部楼层
当时我也弄了半天,现在看到33讲,一起加油
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-11-29 19:19:24 | 显示全部楼层
fatima 发表于 2018-11-29 18:20
我只学了鱼C的Python课,他的0-4讲里还没涉及到break。这样也好,提前查下break的用法。
新手,崭新的手 ...

加油吧,我也是新手,共同进步!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-11-29 19:43:10 | 显示全部楼层
,逗号, 发表于 2018-11-29 18:33
当时我也弄了半天,现在看到33讲,一起加油

才刚开始。
给自己打个气!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-23 04:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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