鱼C论坛

 找回密码
 立即注册
查看: 1127|回复: 7

[已解决]004课问题

[复制链接]
发表于 2018-1-8 15:07:42 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 geexer 于 2018-1-8 15:10 编辑

根据课堂内容,我只是稍作了下内容改变,但是发现一个问题
  1. temp = input('请输入一个数字:')
  2. guess = int(temp)

  3. while guess != 9:
  4.         if guess == 9:
  5.                 print('猜对了')
  6.         else:
  7.                 if guess > 9:
  8.                         print('大了')
  9.                 else:
  10.                         print('小了')
  11.         temp = input('请重新输入一个数字:')
  12.         guess = int(temp)

  13. print('game over')
复制代码


如果我输入正确答案,却不能打印‘猜对了’这句,而是直接提示‘game over’
这是为什么呢?

004问题

004问题
最佳答案
2018-1-9 10:04:41
本帖最后由 冰封雪舞 于 2018-1-9 10:09 编辑

兄弟你这句话
while guess != 9:
告诉计算机当guess不等于9执行下边循环里操作,比如什么guess大于9打印大了小于9打印小了,然后让玩家重新输入一个新的数字接着判断。
but 但是但是但是重要的事情说3边,你忘记告诉计算机如果guess等于9要怎么办,所以计算机就不搭理等于9的情况,直接执行后边那一句print('game over')
针对这种情况,你可以在最后一句加一段
else:
    print('我操,你就是我肚子里的蛔虫啊!一次就猜对了。')
然后你看计算机肯定就知道了如果guess=9该干什么了。
temp = input('请输入一个数字:')
guess = int(temp)

while guess != 9:
        if guess == 9:
                print('猜对了')
        else:
                if guess > 9:
                        print('大了')
                else:
                        print('小了')
        temp = input('请重新输入一个数字:')
        guess = int(temp)
else:
    print('我操,你就是我肚子里的蛔虫啊!一次就猜对了。')
print('game over')

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

使用道具 举报

发表于 2018-1-8 15:15:01 | 显示全部楼层
等于9,就不会进入while循环,直接显示gameover了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-8 15:17:57 | 显示全部楼层
不等于9就一直循环,那等于9的时候进不去循环怎么判断?
  1. # -*- coding:utf-8 -*-
  2. temp = input('请输入一个数字:')
  3. guess = int(temp)

  4. while 1:
  5.     if guess == 9:
  6.         print('猜对了')
  7.         print('game over')
  8.         exit()
  9.     else:
  10.         if guess > 9:
  11.             print('大了')
  12.         else:
  13.             print('小了')
  14.     temp = input('请重新输入一个数字:')
  15.     guess = int(temp)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-8 15:51:37 | 显示全部楼层
因为while的条件啊,你写的是不等于9,也就是当输入的数不等于9才进入循环,当然无法打印出正确的数了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-9 09:08:31 | 显示全部楼层

while guess != 9:这句while的条件就写错了!改下这个就可以了哦~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-9 10:04:41 | 显示全部楼层    本楼为最佳答案   
本帖最后由 冰封雪舞 于 2018-1-9 10:09 编辑

兄弟你这句话
while guess != 9:
告诉计算机当guess不等于9执行下边循环里操作,比如什么guess大于9打印大了小于9打印小了,然后让玩家重新输入一个新的数字接着判断。
but 但是但是但是重要的事情说3边,你忘记告诉计算机如果guess等于9要怎么办,所以计算机就不搭理等于9的情况,直接执行后边那一句print('game over')
针对这种情况,你可以在最后一句加一段
else:
    print('我操,你就是我肚子里的蛔虫啊!一次就猜对了。')
然后你看计算机肯定就知道了如果guess=9该干什么了。
temp = input('请输入一个数字:')
guess = int(temp)

while guess != 9:
        if guess == 9:
                print('猜对了')
        else:
                if guess > 9:
                        print('大了')
                else:
                        print('小了')
        temp = input('请重新输入一个数字:')
        guess = int(temp)
else:
    print('我操,你就是我肚子里的蛔虫啊!一次就猜对了。')
print('game over')

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

使用道具 举报

 楼主| 发表于 2018-1-9 10:07:05 | 显示全部楼层
本帖最后由 geexer 于 2018-1-9 10:12 编辑

谢谢各位朋友,我最后调换了下位置

  1. temp = input('请输入一个数字:')
  2. guess = int(temp)

  3. while guess != 9:
  4.         if guess > 9:
  5.                 print('大了')
  6.         else:
  7.                 print('小了')
  8.         temp = input('请重新输入一个数字:')
  9.         guess = int(temp)
  10.         if guess == 9:
  11.                 print('猜对了')
  12. print('game over')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-22 22:52:03 | 显示全部楼层
geexer 发表于 2018-1-9 10:07
谢谢各位朋友,我最后调换了下位置

你这样改会导致这样的情况:第一次输入为9时,还是会直接显示game over
建议把if guess ==9:
                  print('猜对了')
这一句放在循环的上面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-11 19:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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