鱼C论坛

 找回密码
 立即注册
查看: 1554|回复: 4

[已解决]python 009课后作业问题

[复制链接]
发表于 2017-8-8 09:00:53 | 显示全部楼层 |阅读模式

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

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

x
  1. for i in range(100,1000):
  2.     sum =0
  3.     temp =i
  4.     while temp:
  5.         sum=sum + (temp%10) ** 3
  6.         temp //= 10

  7.     if sum==i:
  8.         print(i)
复制代码


我不懂的地方是while temp那里,为什么不能是while i,还有后面的 temp //= 10 换成i //= 10。
我想了想,是不是因为在while循环里,如果我用i的话,while 循环里的i得值就会因为在 i//=10这里就被改变,导致于 if sum==i永远不可能是true。
然而用赋值变量的temp的话,temp永远在一个while 和if走完之后,在for的循环里会重新给下一个变量i赋值?

希望能帮帮我,如果语言组织,逻辑有问题的话,请见谅啊。
最佳答案
2017-8-8 09:48:02
2017-08-08_094613.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-8-8 09:01:46 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-8 09:48:02 | 显示全部楼层    本楼为最佳答案   
2017-08-08_094613.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-8 10:33:13 | 显示全部楼层
你的理解是正确的。使用临时变量 temp 来计算 sum 的值,计算完之后 temp 的值为0,然后将 sum 的值和 i 进行比较,下一次循环重新赋值给temp
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-8 10:55:50 | 显示全部楼层
谢谢大家给的答案。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-1 08:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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