鱼C论坛

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

Python的while循环

[复制链接]
发表于 2015-8-10 15:35:14 | 显示全部楼层 |阅读模式

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

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

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)


    假如i、temp是153  temp%10 结果等于3 然后 3**3的结果与sum相加 temp//=10 这里是整除 所以temp变成了15  然后继续%10 变成了5 5**3的结果与sum相加 temp//=10 temp变成 1 继续%10变成了 1**3 与sum相加  最后sum的结果为153 sum==i 成立 打印i值



请问:
     while  temp  的第一次循环值是什么?它是如何跳进下一个循环的
     如上述文字所说。temp是可变值吗?它是如何把temp = i(100,999)循环完毕的
     如果第一次进入是100,它如何跳进下一个循环(为真循环,为假退出循环)
请具体说一下,谢谢。最好有例子
   
   
   
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-8-10 20:47:54 | 显示全部楼层
1. while temp进入第一次循环,因为i=100;temp 不等于0就会进入下一个循环;当temp=0之后,会跳出while循环
接着下来就运行if判断条件,然后返回for循环
2. temp是可变化的值,程序一直对temp值进行运算,赋值;当跳出while循环的时候,此时temp=0,然后进入for循环之后,又再次为temp赋值,此时temp=i的值
3. 若第一次i=100,此时temp=i=100,由于temp!=0,此时进入while循环,temp%10=0,sum=0+0**3=0,temp//10(即100//10=10),temp=10,依旧不等于0,再次进入while、
循环,sum=0,10//10=1,temp依旧不等于0,再次进入while循环,1%10=1,sum=1,1//10=0;此时temp=0,条件为假跳出while循环,判断sum是否等于i(1!=100,不打印)运行for循环,i=101,再次进入如上while循环操作

不知道是否你想要的答案~

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
~风介~ + 5 + 5 支持楼主!

查看全部评分

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

使用道具 举报

发表于 2015-8-10 21:04:46 | 显示全部楼层
while循环是根据后面的条件来的,为true时会进行之后的内容,为false不会执行,True对应的数字是1,False对应的数字是0。在python里,空的玩意和0都会判断成False,不是空不是0就都是True。

temp是否可变取决于是否改变了他的值,呃,说的有些废话。
呃,问的没大看懂,100-999的循环好像是个for循环,和temp并没有关系。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-10 23:27:11 | 显示全部楼层
自己拿笔来列一下就清楚了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-17 04:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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