鱼C论坛

 找回密码
 立即注册
查看: 1738|回复: 10

[已解决]问一下这里的guess为什么不能等于secret这个值

[复制链接]
发表于 2018-2-20 05:00:06 | 显示全部楼层 |阅读模式
1鱼币
本帖最后由 无情老兔兔 于 2018-2-20 05:02 编辑

如果等于了会怎么样我自己试了没感觉有变化啊,还有这里的guess=0了后来有附加他int(temp)这个数值了,也就是说后面的guess值不是0了是我temp输入的数字了是吧
那这个图片应该赋予后面的特性应该是黑夜啊
最佳答案
2018-2-20 05:00:07
你好,我是Python萌新,看到你的问题我们互相讨论印证。

你看小甲鱼给出的while循环,因为while循环为“真循环”,只有当while后面为真,才回执行后面的语句。

当你的guess = secret 的时候, (guess != secret) and (times > 0) 得到的应该为假,从而跳过后面的语句,直接打印“游戏结束,不玩啦”

作为印证,你可以讲第六条 guess = 0 改成 guess = secret

------------------------

第二问太简单了,明白 “=” 是赋值的意思即可,多尝试一下,能理清关系。其实第三句是没有用的
6M{QY88XD6]OKUIK%1G__AO.png
Z}03I88E9C4}XUIT(SJ)HTE.png

最佳答案

查看完整内容

你好,我是Python萌新,看到你的问题我们互相讨论印证。 你看小甲鱼给出的while循环,因为while循环为“真循环”,只有当while后面为真,才回执行后面的语句。 当你的guess = secret 的时候, (guess != secret) and (times > 0) 得到的应该为假,从而跳过后面的语句,直接打印“游戏结束,不玩啦” 作为印证,你可以讲第六条 guess = 0 改成 guess = secret ------------------------ 第二问太简单了,明白 “=” ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-20 05:00:07 | 显示全部楼层    本楼为最佳答案   
你好,我是Python萌新,看到你的问题我们互相讨论印证。

你看小甲鱼给出的while循环,因为while循环为“真循环”,只有当while后面为真,才回执行后面的语句。

当你的guess = secret 的时候, (guess != secret) and (times > 0) 得到的应该为假,从而跳过后面的语句,直接打印“游戏结束,不玩啦”

作为印证,你可以讲第六条 guess = 0 改成 guess = secret

------------------------

第二问太简单了,明白 “=” 是赋值的意思即可,多尝试一下,能理清关系。其实第三句是没有用的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-2-20 16:43:26 | 显示全部楼层
linzhengren90 发表于 2018-2-20 06:49
你好,我是Python萌新,看到你的问题我们互相讨论印证。

你看小甲鱼给出的while循环,因为while循环为“ ...

也就是说第一个gess给他赋予的值只是为了让while循环为真  ,说白了只是为了让他在这个循环里去工作,是吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-2-20 16:45:08 | 显示全部楼层
linzhengren90 发表于 2018-2-20 06:49
你好,我是Python萌新,看到你的问题我们互相讨论印证。

你看小甲鱼给出的while循环,因为while循环为“ ...

如果gess取 1至10里面的数字  当gess和secret值随机相等的时候,while就不工作了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-2-20 16:51:57 | 显示全部楼层
linzhengren90 发表于 2018-2-20 06:49
你好,我是Python萌新,看到你的问题我们互相讨论印证。

你看小甲鱼给出的while循环,因为while循环为“ ...

那这个内置函数 int是什么意思  是整合 整数字符嘛  
还有第十三句 times-1  PYTHON里只要减1就是没输入一次就会少一次机会 么
如果是time-2的话就是每输入一次减2以此类推是吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-20 20:04:27 | 显示全部楼层
无情老兔兔 发表于 2018-2-20 16:45
如果gess取 1至10里面的数字  当gess和secret值随机相等的时候,while就不工作了

是的,小甲鱼还提到,在循环语句中你是不能命名新的变量的(我忘记什么时候讲的了,我昨天才看到过),所以给guess赋值只是为了让循环进行之前,让guess这个变量存在。所以为了思维上的简洁?,此处让guess = 0.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-20 20:18:28 | 显示全部楼层
无情老兔兔 发表于 2018-2-20 16:51
那这个内置函数 int是什么意思  是整合 整数字符嘛  
还有第十三句 times-1  PYTHON里只要减1就是没输入 ...

int是讲你输入的值变成整数的一个“内置函数”,内置函数在第二讲就有了。就是BIF(Built-in Functions)。如果你有书的话是第六页。

int这个步骤是不能省略的,具体原因我还不明白,temp = input() 当我们输入5的时候,temp这个变量应该是等于5的,但省掉 int 这个步骤的话是不能运行的。也许此刻 temp 只是一个文本/字符串。当guess = int(temp)之后,guess就得到一个数字的值了。

------------------

这里的 times = times - 1 不是这么理解的,你要明白这个程序的目的。你希望别人只有三次输入机会。这里起到一个倒数的作用,当你猜过三次之后,times的值变成零。跳回while 语句, (guess != secret) and (times > 0 ) 的条件就为假,会跳过while循环,输出“游戏结束”。 (在第三个循环的时候,times在循环中已经减1等于0,故而你也会得到第25句的答案:”机会用光咯“

你说的 times - 2 也没有毛病,但你理解上是有问题的。times这个变量的用意就是计数,所以-1才是正解。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-20 20:20:04 | 显示全部楼层
linzhengren90 发表于 2018-2-20 20:04
是的,小甲鱼还提到,在循环语句中你是不能命名新的变量的(我忘记什么时候讲的了,我昨天才看到过),所 ...

对不起,我这里说的循环中不能命名变量应该是有问题,因为例子中的第11句,temp = input() 就是在定义变量。也许是if语句中不能定义。让我确认一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-20 20:35:59 | 显示全部楼层
linzhengren90 发表于 2018-2-20 20:20
对不起,我这里说的循环中不能命名变量应该是有问题,因为例子中的第11句,temp = input() 就是在定义变 ...

具体在哪里看到的找不到了。但亲测了一下,其实任何时候都是可以定义变量的。

只是在if语句中进行变量的定义,可能会根据语句跳过这个值,之后的语句在用到,就会出错。
Screenshot 2018-02-20 20.25.58.png
没有e和f,就可以正常运行
Screenshot 2018-02-20 20.26.18.png
while完全没问题。我想小甲鱼是在提醒if中小心使用变量。
Screenshot 2018-02-20 20.26.40.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-2-22 05:57:30 | 显示全部楼层
linzhengren90 发表于 2018-2-20 20:35
具体在哪里看到的找不到了。但亲测了一下,其实任何时候都是可以定义变量的。

只是在if语句中进行变量 ...

if time. isdigit
这句话是什么意思呢,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-22 10:41:33 | 显示全部楼层
无情老兔兔 发表于 2018-2-22 05:57
if time. isdigit
这句话是什么意思呢,

这个应该是第五课,课后练习里面普及的知识吧。

  1. time = input()

  2. while time.isdigit():
复制代码


首先 input() BIF所得到的值是字符串,int() 这个BIF也很奇怪,当转化字符串的时候,如果你输入的值是浮点或者负数,不能实现转化。
所以当你直接使用 int() 来转化你输入的值,会报错。所以在此之前会对输入的对象先进行一个判断。
xxxxx.isdigit() 这个方法(?是这么叫吗),当你输入的字符串全部由数字组成时,返回True。

  1. >>> a = '1'
  2. >>> b = '1.2'
  3. >>> c = '-2.3'
  4. >>> int(a)
  5. 1
  6. >>> int(b)
  7. Traceback (most recent call last):
  8.   File "<pyshell#4>", line 1, in <module>
  9.     int(b)
  10. ValueError: invalid literal for int() with base 10: '1.2'
  11. >>> int(c)
  12. Traceback (most recent call last):
  13.   File "<pyshell#5>", line 1, in <module>
  14.     int(c)
  15. ValueError: invalid literal for int() with base 10: '-2.3'
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 22:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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