鱼C论坛

 找回密码
 立即注册
查看: 1178|回复: 8

[已解决]修改小甲鱼的游戏,有一些认识不知对错,请大家帮忙看看

[复制链接]
发表于 2019-5-17 16:07:22 | 显示全部楼层 |阅读模式

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

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

x
temp = input('猜猜小甲鱼现在想什么数字:')
guess = int(temp)# 问题1、:次两行是初始信息,下面运行之后就与该两行再无关系了,对吧?

while guess != 8:
    if guess > 8:
        print("大了大了")
    else:
        print("小了小了")

    temp = input("请再试试吧:")
    guess = int(temp)# 问题2、:temp、guess这两行还在while程序中运行,目的一是引入一个新guess,开始一个新的循环;二是既然开始了新循环,则防止了无限循环的出现;三是把这个新guess由str类型转化为整数类型,不知可以这么理解不? 问题3、: 另外这里temp和上面print("小了小了")之间空出来的那一行好像不影响运行,就是为了代码看着工整而已,对吗?


以上代码是小甲鱼的书里举的例子,#后面是我写的问题,请各位帮忙看看,多谢多谢
最佳答案
2019-5-17 17:32:41
本帖最后由 jackz007 于 2019-5-17 17:48 编辑

      通过 input() 得到的是字符串,int(input()) 目的就是得到整形数;

      如果在循环外面 guess 值正确,就不会进入循环,而如果进入循环,则 guess 的作用就剩下判断大小了,反正会重新输入,如果不安排重新输入,正如楼主所说,程序就会陷入死循环;

      Python 代码里的空行没有什么特别意义,就是为了美观;

  1. guess = int(input('猜猜小甲鱼现在想什么数字:'))    # 获取 guess

  2. while guess != 8:                                 # 关口,除非 guess 的值正确,否则出不了循环
  3.     if guess > 8:                                 # 执行到了这里,说明 guess 不正确,不是大便是小了
  4.         print("大了大了")
  5.     else:
  6.         print("小了小了")

  7.     guess = int(input("请再试试吧:"))             # 再次获取 guess,执行完此句会返回 while 循环的入口,再次检查 guess 的值是否正确

  8. print('猜对了,你是小甲鱼肚子里的蛔虫?')            # 程序执行到这里,便说明 guess 已经是正确值了。
  9. print('哼,猜对了也没有奖励!')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-5-17 17:32:41 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +2 鱼币

本帖最后由 jackz007 于 2019-5-17 17:48 编辑

      通过 input() 得到的是字符串,int(input()) 目的就是得到整形数;

      如果在循环外面 guess 值正确,就不会进入循环,而如果进入循环,则 guess 的作用就剩下判断大小了,反正会重新输入,如果不安排重新输入,正如楼主所说,程序就会陷入死循环;

      Python 代码里的空行没有什么特别意义,就是为了美观;

  1. guess = int(input('猜猜小甲鱼现在想什么数字:'))    # 获取 guess

  2. while guess != 8:                                 # 关口,除非 guess 的值正确,否则出不了循环
  3.     if guess > 8:                                 # 执行到了这里,说明 guess 不正确,不是大便是小了
  4.         print("大了大了")
  5.     else:
  6.         print("小了小了")

  7.     guess = int(input("请再试试吧:"))             # 再次获取 guess,执行完此句会返回 while 循环的入口,再次检查 guess 的值是否正确

  8. print('猜对了,你是小甲鱼肚子里的蛔虫?')            # 程序执行到这里,便说明 guess 已经是正确值了。
  9. print('哼,猜对了也没有奖励!')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-18 12:16:20 | 显示全部楼层

回帖奖励 +2 鱼币

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

使用道具 举报

发表于 2019-5-18 12:17:18 | 显示全部楼层
这样写没有问题的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-20 17:34:17 | 显示全部楼层
jackz007 发表于 2019-5-17 17:32
通过 input() 得到的是字符串,int(input()) 目的就是得到整形数;

      如果在循环外面 guess  ...

您第二段开头说“如果在循环外面 guess 值正确,就不会进入循环,”因为下面接着列出了while guess != 8,所以此时如果输入的guess值不等于8,就会走while循环这个程序;如果输入的guess值等于8,就会绕开整个while程序,我可以这么理解吧?

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

使用道具 举报

 楼主| 发表于 2019-5-20 17:39:40 | 显示全部楼层
jackz007 发表于 2019-5-17 17:32
通过 input() 得到的是字符串,int(input()) 目的就是得到整形数;

      如果在循环外面 guess  ...

关于代码运行的流程,请问是按照代码排列逐行依次运行吧?while下面各行,只要缩进的,系统就认为是while这个循环程序里的,最后那两行print因为没有缩进,所以系统认为他们并不从属于while循环程序,当guess等于8时,系统就自动绕开整个while循环,直接运行最后那两行print代码,我可以这么理解吧?(我是自学加初学,很多术语并不明白,只能尽量捡我认为对的来写)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-20 18:04:09 | 显示全部楼层
樱木健二 发表于 2019-5-20 17:39
关于代码运行的流程,请问是按照代码排列逐行依次运行吧?while下面各行,只要缩进的,系统就认为是while ...

      你的理解是正确的,在 Python 语言中,语句块是通过缩进来进行组织和规划的,缩进就意味着归属。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-20 18:05:20 | 显示全部楼层
樱木健二 发表于 2019-5-20 17:34
您第二段开头说“如果在循环外面 guess 值正确,就不会进入循环,”因为下面接着列出了while guess != 8 ...

      你的理解是正确的,就是这个意思。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-20 21:06:13 | 显示全部楼层
jackz007 发表于 2019-5-20 18:05
你的理解是正确的,就是这个意思。

多谢多谢,这是通过自己观察得来的,呵呵
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-10 03:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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