鱼C论坛

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

[已解决]求助!006讲里课后动手题讲解!

[复制链接]
发表于 2020-3-17 09:38:01 | 显示全部楼层 |阅读模式

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

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

x
#有一个长阶梯
#若每步上2阶,最后剩1阶;
#若每步上3阶,最后剩2阶;
#若每步上5阶,最后剩4阶;
#若每步上6阶,最后剩5阶;
#只有每步上7阶,最后刚好一阶也不剩

x = 7
i = 1
flag = 0     #Q1:这个flag是什么?为什么是零?

while i <= 100:
    if (x % 2 == 1) and (x % 3 == 2) and (x % 5 == 4) and ( x % 6 == 5):
        flag = 1     #Q2:这个flag为什么要赋值1?
    else:
        x = 7 * (i+1)
    i = i + 1

if flag == 1:       #Q3:这个条件为什么要判定flag为1?
    print('阶梯数为:',x,end="级")   #Q4:这个打印出来的x怎么就是所求结果阶梯数了呢?
else:
    print('在程序限定范围找不到答案')
最佳答案
2020-3-17 09:53:11
flag意思是标志,旗子。
顾名思义,就是用来做标记的。在这个程序中就是来标记while循环中的x是不是满足条件,若满足给出的条件就将标记flag设置为1,表示找到了符合条件的数值。

在while循环中,x始终是7的倍数,表示满足最后一个条件,第14行的if判断就是看看x是否满足前面几个条件,若都满足,则将flag设置为1,表示符合条件的数找到了。之后继续循环的时候x就不会再改变了,所以结束循环后,若flag=1,则所得到的的x就是要找的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-17 09:41:27 | 显示全部楼层
1,flag就是用来判断找没找到答案(0是假,1是真)
2,看while循环里的if,就是对x进行判断啊,打印x也是必须的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-17 09:53:11 | 显示全部楼层    本楼为最佳答案   
flag意思是标志,旗子。
顾名思义,就是用来做标记的。在这个程序中就是来标记while循环中的x是不是满足条件,若满足给出的条件就将标记flag设置为1,表示找到了符合条件的数值。

在while循环中,x始终是7的倍数,表示满足最后一个条件,第14行的if判断就是看看x是否满足前面几个条件,若都满足,则将flag设置为1,表示符合条件的数找到了。之后继续循环的时候x就不会再改变了,所以结束循环后,若flag=1,则所得到的的x就是要找的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-17 09:59:22 | 显示全部楼层
1.flag其实就是一个变量名。
2.if语句成立,flag赋值为1,才方便下面的计算
3.因为前面的while循环里面的if语句成立,所以才执行判定为1
4.你想想,前面的while循环里面的if语句成立,所以x % 所对应的阶梯数就是所要求的呗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-17 10:17:48 | 显示全部楼层
看了下面的评论,有个问题 while I <=100 还是 x <=100
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-17 10:27:12 | 显示全部楼层
sunrise085 发表于 2020-3-17 09:53
flag意思是标志,旗子。
顾名思义,就是用来做标记的。在这个程序中就是来标记while循环中的x是不是满足条 ...

谢谢回答!

Q1,那么flag表示其实是布尔的True(1) 跟 False (0)的意思嘛?

11行的flag = False
15行的flag = True

Q2第15行的flag的缩进,与第20行if flag 的缩进,我该怎么品?有点不是很懂。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-17 10:31:44 | 显示全部楼层
vidyhe 发表于 2020-3-17 10:17
看了下面的评论,有个问题 while I

i <= 100
x要由i来定义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-17 10:40:11 | 显示全部楼层
这个流程图怎么画呢?

我还是不知道怎么理解这个x就这么被求出来了。
微信截图_20200317103843.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-17 10:43:33 | 显示全部楼层
板砖丶 发表于 2020-3-17 10:27
谢谢回答!

Q1,那么flag表示其实是布尔的True(1) 跟 False (0)的意思嘛?

Q1、你理解的是对的。flag可以随意些,只要你自己知道分别代表什么意思就行。
Q2、至于缩进。python有自己的缩进规则。每个层次的语句缩进要一样。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-17 13:03:32 | 显示全部楼层
1. flag 相当于一个标志,用来标记是否找到阶梯数,一开始赋值为 0,表示没找到。找到阶梯数后将 flag 赋值给 1 。最后判断 flag 是否等于 1,等于 1 则代表找到了阶梯数,否则代表没有找到阶梯数。

2. 因为如果 x 符合循环中的 if 条件,x 将不会增加(只有不满足 if 条件才会增加)。x 不会增加,if 判断条件就永远为真,这时只要等 i 大于 100 时就可以退出循环了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-17 14:42:03 | 显示全部楼层

可是还是不理解X是怎么变化的,后面的语句只有 I+=1,X好像都没有变
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-17 14:43:17 | 显示全部楼层
本帖最后由 vidyhe 于 2020-3-17 15:41 编辑
zltzlt 发表于 2020-3-17 13:03
1. flag 相当于一个标志,用来标记是否找到阶梯数,一开始赋值为 0,表示没找到。找到阶梯数后将 flag 赋值 ...


为什么不满足if条件的时候 x会增加呢?


终于理解了,原来前面的没有满足,走else了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-17 17:06:17 | 显示全部楼层
如果你的问题已解决,请设置【最佳答案】。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-18 11:29:07 | 显示全部楼层
zltzlt 发表于 2020-3-17 17:06
如果你的问题已解决,请设置【最佳答案】。

还是有些似懂非懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 01:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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