鱼C论坛

 找回密码
 立即注册
查看: 2209|回复: 3

多次循环后,对象值不会被覆盖么?

[复制链接]
发表于 2017-2-9 10:41:03 | 显示全部楼层 |阅读模式

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

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

x
#006讲中“爱因斯坦的难题”,参考小甲鱼的代码后进行更新,如下:


  1. x = 7
  2. i = 1
  3. flag = 0
  4. print("阶梯数如下:")
  5. while i <= 100 :
  6.     x = 7*i                       #直接将x值赋成7的整数倍
  7.     if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5) :
  8.         print(x)                 #在范围内,每次求到满足要求的值后便打印
  9.         flag = 1
  10.     i += 1
  11. if flag == 0 :
  12.     print("在程序限定的范围内找不到答案!")

复制代码


#小甲鱼的参考代码如下:


  1. x = 7
  2. i = 1
  3. flag = 0
  4. print("阶梯数如下:")
  5. while i <= 100 :
  6.     if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5) :
  7.         flag = 1
  8.     else :
  9.         x = 7 * (i+1)             #先判断,后赋值
  10.     i += 1
  11. if flag == 1 :
  12.     print(x)                        #循环结束后,再将求到的值打印出来
  13. else :
  14.     print("在程序限定的范围内找不到答案!")  

复制代码


按说,每次求到满足要求的值后,x的值会被更新。为何小甲鱼的代码运行后,只会打印第一次求到的值,而非最后一次求到的值??非常感谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-2-10 09:01:17 | 显示全部楼层
还请高人帮忙赐教一下啊,非常感谢~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-10 10:58:50 | 显示全部楼层
看中间这块的if判断
  1.     if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5) :
  2.         flag = 1
  3.     else :
  4.         x = 7 * (i+1)             #先判断,后赋值
复制代码


如果这个数是符合要求的只会把flag置1,并没有动x的值,所以求到了一个符合要求的数之后,x就不会再变了

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
haskye + 1 + 1 + 1

查看全部评分

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

使用道具 举报

 楼主| 发表于 2017-2-10 11:27:23 | 显示全部楼层
shuofxz 发表于 2017-2-10 10:58
看中间这块的if判断

嗯嗯,明白了,非常感谢~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-25 08:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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