鱼C论坛

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

guess !=8

[复制链接]
发表于 2017-2-28 18:47:04 | 显示全部楼层 |阅读模式

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

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

x
print("--------------我爱鱼C工作室-------------------------------")
guess = int(input("不妨猜一下小甲鱼现在心里想的是哪个数字:"))
while guess !=8:
    guess = int(input("猜错了,请重新输入吧:"))
    if guess == 8:
        print("我草,你是小甲鱼心里的蛔虫吗?!")
        print("哼,猜中了也没有奖励!")
    else:
        if guess > 8:
            print("哥,大了大了~~~~")
        else:
            print("嘿,小了,小了~~~~")
print("游戏结束,不玩啦^_^")
----------------------------------------------------------------------------------------------------
请问,while guess !=8:
1:当我输入8的时候,程序怎么(从哪)运行呢?为什么?
2:我把 guess !=8 条件给成 1或者guess (真),似乎程序运行也没问腿啊?
总之,为什么小甲鱼老师将条件设为guess !=8 呢?
没搞懂,希望指点一下新手,感激不尽!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-28 19:00:01 | 显示全部楼层
1.input就是让你输入的,int将你输入的字符转换成整形 最后赋值给guess,然后下边就顺序执行,你可以先往后看 后边会有所解释
2.while 1或者真的时候 程序会不断循环,即使你对了也不会停下来,guess !=8是为了程序在输入8的时候能停下循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-28 19:59:27 | 显示全部楼层
lumber2388779 发表于 2017-2-28 19:00
1.input就是让你输入的,int将你输入的字符转换成整形 最后赋值给guess,然后下边就顺序执行,你可以先往后看  ...

首先,很感谢你的回复,不过似乎没解决我的疑问啊?
那句话我懂,temp = input("不妨猜一下小甲鱼心里想的是哪个数字:")
                  guess = int (temp)
while是当条件为真时,执行。。我的理解是当我输入8时,guess = 8,那么此时while后面的条件(guess !=8)就不成立了啊,还怎么执行呢?
2:还有,麻烦您有空试试,我把条件改成 真(1)时,并没有在界面上无限执行啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-28 20:29:44 | 显示全部楼层
这个游戏是有缺陷的,自己加上就好啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-28 21:45:37 | 显示全部楼层
Rain-Jin 发表于 2017-2-28 19:59
首先,很感谢你的回复,不过似乎没解决我的疑问啊?
那句话我懂,temp = input("不妨猜一下小甲鱼心里想 ...

你如果输入8的话那就是直接打印最后的结束语句,不会执行while,while的更详细用法 后边几课会提到的,你只要认为条件符合就会进入循环,不然就不会执行循环体
python好像是有保护机制,执行到100次的时候就会停下,不然会一直占用内存,导致系统出现内存不足的情况,前期理解起来会有点困难
还有问题可以继续问,尽量解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-28 22:17:24 | 显示全部楼层
先回答第2个问题:
当你设置 guess != 1 作为while循环条件的时候:
你输入1的话,会直接跳到最后一句 print ("游戏结束")
这个就是区别。

第1个问题:
当你输入等于8的时候:
  1. while guess !=8:
  2.     guess = int(input("猜错了,请重新输入吧:"))
  3.     if guess == 8:
  4.         print("我草,你是小甲鱼心里的蛔虫吗?!")
  5.         print("哼,猜中了也没有奖励!")
  6.     else:
  7.         if guess > 8:
  8.             print("哥,大了大了~~~~")
  9.         else:
  10.             print("嘿,小了,小了~~~~")
复制代码

这一句都会被略过,直接结束游戏了。 因为 循环条件不成立。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-1 12:14:42 | 显示全部楼层
自然水 发表于 2017-2-28 22:17
先回答第2个问题:
当你设置 guess != 1 作为while循环条件的时候:
你输入1的话,会直接跳到最后一句 pr ...

针对您的第二个问题,我的意思是 while 1: 就好了,不是while guess !=1;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-1 12:18:25 | 显示全部楼层
自然水 发表于 2017-2-28 22:17
先回答第2个问题:
当你设置 guess != 1 作为while循环条件的时候:
你输入1的话,会直接跳到最后一句 pr ...

print("--------------我爱鱼C工作室-------------------------------")
guess = int(input("不妨猜一下小甲鱼现在心里想的是哪个数字:"))
while guess !=8:
    guess = int(input("猜错了,请重新输入吧:"))
    if guess == 8:
        print("我草,你是小甲鱼心里的蛔虫吗?!")
        print("哼,猜中了也没有奖励!")
    else:
        if guess > 8:
            print("哥,大了大了~~~~")
        else:
            print("嘿,小了,小了~~~~")
print("游戏结束,不玩啦^_^")
---------------------------------------------------------------------------------
Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 07:18:10) [MSC v.1900 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>
================ RESTART: C:\Users\Rain\Desktop\测试.py ================
--------------我爱鱼C工作室-------------------------------
不妨猜一下小甲鱼现在心里想的是哪个数字:7
猜错了,请重新输入吧:9
哥,大了大了~~~~
猜错了,请重新输入吧:8
我草,你是小甲鱼心里的蛔虫吗?!
哼,猜中了也没有奖励!
游戏结束,不玩啦^_^
>>>
================ RESTART: C:\Users\Rain\Desktop\测试.py ================
--------------我爱鱼C工作室-------------------------------
不妨猜一下小甲鱼现在心里想的是哪个数字:8
游戏结束,不玩啦^_^
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-1 14:52:41 | 显示全部楼层
while guess!=8说明guess不等于8的时候才会进入循环,那如果是等于8就不会进入循环了,直接打印结束
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-1 14:58:06 | 显示全部楼层
五行缺五行 发表于 2017-3-1 14:52
while guess!=8说明guess不等于8的时候才会进入循环,那如果是等于8就不会进入循环了,直接打印结束

谢谢你,如果您往上浏览一下我回复别人的运行结果,你会发现这个问题
不妨猜一下小甲鱼现在心里想的是哪个数字:7
猜错了,请重新输入吧:9
哥,大了大了~~~~
猜错了,请重新输入吧:8
我草,你是小甲鱼心里的蛔虫吗?!----------------------(为什么会出现呢???)
哼,猜中了也没有奖励!
游戏结束,不玩啦^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-1 16:58:46 | 显示全部楼层
不是定义的函数或者类,程度都从第一行运行呀。第二行运行后,你输入8,然后运行第三行那个,判断=8就跳过循环啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-1 20:15:18 | 显示全部楼层
xxpythonxx 发表于 2017-3-1 16:58
不是定义的函数或者类,程度都从第一行运行呀。第二行运行后,你输入8,然后运行第三行那个,判断=8就跳过 ...

print("--------------我爱鱼C工作室-------------------------------")
guess = int(input("不妨猜一下小甲鱼现在心里想的是哪个数字:"))
while guess !=8:
    guess = int(input("猜错了,请重新输入吧:"))
    if guess == 8:
        print("我草,你是小甲鱼心里的蛔虫吗?!")
        print("哼,猜中了也没有奖励!")
    else:
        if guess > 8:
            print("哥,大了大了~~~~")
        else:
            print("嘿,小了,小了~~~~")
print("游戏结束,不玩啦^_^")
---------------------------------------------------------------------------------
Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 07:18:10) [MSC v.1900 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>
================ RESTART: C:\Users\Rain\Desktop\测试.py ================
--------------我爱鱼C工作室-------------------------------
不妨猜一下小甲鱼现在心里想的是哪个数字:7
猜错了,请重新输入吧:9
哥,大了大了~~~~
猜错了,请重新输入吧:8
我草,你是小甲鱼心里的蛔虫吗?!
哼,猜中了也没有奖励!
游戏结束,不玩啦^_^
>>>
================ RESTART: C:\Users\Rain\Desktop\测试.py ================
--------------我爱鱼C工作室-------------------------------
不妨猜一下小甲鱼现在心里想的是哪个数字:8
游戏结束,不玩啦^_^
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-2 13:25:13 | 显示全部楼层
首先,第一次运行直接输入8时,while不成立,不进入循环体直接打印结束!如果第一次没有输入8,while条件成立,进入循环体,循环体里面的第一条语句就是再次获取一个输入值,然后执行下边的if判断,再然后才是判断while条件,所以进入循环体后,都是先进行if判断,然后再进行while判断,所以会打印那个蛔虫那句话
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-3-2 16:29:45 | 显示全部楼层
夜墨 发表于 2017-3-2 13:25
首先,第一次运行直接输入8时,while不成立,不进入循环体直接打印结束!如果第一次没有输入8,while条件成 ...

感谢,懂你意思了,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 14:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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