鱼C论坛

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

[已解决]第006讲:Python之常用操作符动动手2题疑问

[复制链接]
发表于 2021-2-21 21:30:13 | 显示全部楼层 |阅读模式

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

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

x
x = 7
i = 1
flag = 0

while i <= 100:
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
        flag = 1
    else:
        x = 7 * (i+1) # 根据题意,x一定是7的整数倍,所以每次乘以7
        i += 1                                                                                   #为什么i+=1放在x的正下方就没有数字生成生成,放在else下面就能有结果生成

if flag == 1:
    print('阶梯数是:', x)
else:
    print('在程序限定的范围内找不到答案!')
最佳答案
2021-2-21 21:33:36
本帖最后由 昨非 于 2021-2-21 21:39 编辑

你是在问缩进的问题吗
i+=1这一句必须保证:无论if-else是否满足条件,每层while循环后必定执行
如果你放在else分支语句的内部,则当else不满足条件时,i就不会变
顺带的,x就不会变,判断结果就不会变,进而陷入死循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-21 21:33:36 | 显示全部楼层    本楼为最佳答案   
本帖最后由 昨非 于 2021-2-21 21:39 编辑

你是在问缩进的问题吗
i+=1这一句必须保证:无论if-else是否满足条件,每层while循环后必定执行
如果你放在else分支语句的内部,则当else不满足条件时,i就不会变
顺带的,x就不会变,判断结果就不会变,进而陷入死循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-21 21:33:37 | 显示全部楼层
你说的时这个吧?

  1. x = 7
  2. i = 1
  3. flag = 0

  4. while i <= 100:
  5.     if (x % 2 == 1) and (x % 3 == 2) and (x % 5 == 4) and (x % 6 == 5):
  6.         flag = 1
  7.     else:
  8.         x = 7 * (i+1)  # 根据题意,x一定是7的整数倍,所以每次乘以7
  9.     i += 1  # 为什么i+=1放在x的正下方就没有数字生成生成,放在else下面就能有结果生成

  10. if flag == 1:
  11.     print('阶梯数是:', x)
  12. else:
  13.     print('在程序限定的范围内找不到答案!')
复制代码


因为当你满足 if 的条件时, i并不会 + 1

所以会一直循环,一直满足 if 的条件,进入了死循环

放在 else 外面则是,不论是满足 if 还是 else 的条件,i 都会 +1

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
如水如风 + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-2-21 21:35:33 | 显示全部楼层
昨非 发表于 2021-2-21 21:33
你是在问缩进的问题吗

应该是 i+=1 那个的缩进问题吧

他的代码跑了一下,好家伙,直接死循环了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-22 17:31:27 | 显示全部楼层

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-22 17:32:02 | 显示全部楼层
Daniel_Zhang 发表于 2021-2-21 21:35
应该是 i+=1 那个的缩进问题吧

他的代码跑了一下,好家伙,直接死循环了

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-22 17:43:58 | 显示全部楼层
昨非 发表于 2021-2-21 21:33
你是在问缩进的问题吗
i+=1这一句必须保证:无论if-else是否满足条件,每层while循环后必定执行
如果你放 ...


好家伙,先写第一句站了个坑,比我早发帖1秒

然后过了一会儿领悟到了题主的意思

修改答案写剩下的内容,拿到了最佳

好想法,我咋就没想到呢

我还在那里傻乎乎的敲字

没事,能帮到题主就行

评分

参与人数 1荣誉 +5 贡献 +3 收起 理由
昨非 + 5 + 3 我也经常因为这个丢最佳,止个损哈

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-22 17:46:41 | 显示全部楼层
Daniel_Zhang 发表于 2021-2-22 17:43
好家伙,先写第一句站了个坑,比我早发帖1秒

然后过了一会儿领悟到了题主的意思

不是,不至于啊兄弟
一开始我也不确定具体是啥问题
不是跟你讨论了下嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-22 17:47:47 | 显示全部楼层
昨非 发表于 2021-2-22 17:46
不是,不至于啊兄弟
一开始我也不确定具体是啥问题
不是跟你讨论了下嘛

没事没事

我就是吐槽一下

快点去我帖子说说那个淘专辑的事儿
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 05:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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