鱼C论坛

 找回密码
 立即注册
查看: 1760|回复: 4

[已解决]小白求助 关于零基础Python第一版 P5讲的问题

[复制链接]
发表于 2019-9-1 17:25:38 | 显示全部楼层 |阅读模式

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

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

x
白的不能再白了的小白求助  按照视频里讲的,在加上while循环后,为什么第一次就输对了会直接提示 游戏结束  而不打印“你是小甲鱼肚子里的蛔虫吗?”等东西?应该怎么调整?代码如下
  1. print('------欢迎使用-------')
  2. guess = input('请猜猜我在想哪个数:')
  3. guess = int(guess)
  4. if guess == 8:
  5.     print('你是小甲鱼肚子里的蛔虫吗?')
  6.     print('哼,猜中了也没有奖励')
  7.     while guess != 8:
  8.         guess = input('猜错啦,重新输入试一下吧:')
  9.         guess = int(guess)

  10.         if guess > 8:
  11.             print('大哥,大了,大了!')
  12.         else:
  13.             print('嘿,小了!小了!')
  14. print('游戏结束!不玩啦~')
复制代码
最佳答案
2019-9-1 17:39:44
本帖最后由 小香蕉2009 于 2019-9-1 17:52 编辑

print('------欢迎使用-------')
guess = input('请猜猜我在想哪个数:')
guess = int(guess)
while guess != 8:
        guess = input('猜错啦,重新输入试一下吧:')
        guess = int(guess)

        if guess > 8:
            print('大哥,大了,大了!')
        else:
            print('嘿,小了!小了!')
if guess == 8:
    print('你是小甲鱼肚子里的蛔虫吗?')
    print('哼,猜中了也没有奖励')

print('游戏结束!不玩啦~')


你把while包含在了if条件下,是矛盾的,应该不同的条件,做不同判断。也可以改成这样


print('------欢迎使用-------')
guess = input('请猜猜我在想哪个数:')
guess = int(guess)
while guess != 8:
         guess = input('猜错啦,重新输入试一下吧:')
         guess = int(guess)

         if guess > 8:
             print('大哥,大了,大了!')
         if guess < 8:
             print('嘿,小了!小了!')
if guess == 8:
     print('你是小甲鱼肚子里的蛔虫吗?')
     print('哼,猜中了也没有奖励')

print('游戏结束!不玩啦~')
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-9-1 17:31:09 | 显示全部楼层
你if分支下包含了while分支。

也就是说,在if分支符合条件的情况下,才能进行判断while分支。

也就是说,在guess等于8的前提下,再进行判断guess !=8 ,自相矛盾了。

解决的办法是把while分支往前提,单独一个分支,不要包含在if分支下面。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-9-1 17:39:44 | 显示全部楼层    本楼为最佳答案   
本帖最后由 小香蕉2009 于 2019-9-1 17:52 编辑

print('------欢迎使用-------')
guess = input('请猜猜我在想哪个数:')
guess = int(guess)
while guess != 8:
        guess = input('猜错啦,重新输入试一下吧:')
        guess = int(guess)

        if guess > 8:
            print('大哥,大了,大了!')
        else:
            print('嘿,小了!小了!')
if guess == 8:
    print('你是小甲鱼肚子里的蛔虫吗?')
    print('哼,猜中了也没有奖励')

print('游戏结束!不玩啦~')


你把while包含在了if条件下,是矛盾的,应该不同的条件,做不同判断。也可以改成这样


print('------欢迎使用-------')
guess = input('请猜猜我在想哪个数:')
guess = int(guess)
while guess != 8:
         guess = input('猜错啦,重新输入试一下吧:')
         guess = int(guess)

         if guess > 8:
             print('大哥,大了,大了!')
         if guess < 8:
             print('嘿,小了!小了!')
if guess == 8:
     print('你是小甲鱼肚子里的蛔虫吗?')
     print('哼,猜中了也没有奖励')

print('游戏结束!不玩啦~')
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-9-1 17:41:24 | 显示全部楼层
你while的判断条件是guess != 8,而你的guess已经是8了,自然不会执行,直接跳过
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-9-1 19:04:16 | 显示全部楼层
因为 while 循环的条件是 guess != 8,第一次猜对 guess 等于 8,不满足条件就不会进入循环。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-6 09:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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