鱼C论坛

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

python while 循环后跟着一个整数,循环机制是什么呢?如下代码?

[复制链接]
发表于 2017-3-1 13:30:13 | 显示全部楼层 |阅读模式
1鱼币
for i in range(100, 1000):
    sum = 0
    temp = i
    while temp:     #temp 是100-999的一组数,是只100-999循环一次还是一直循环下去呢?
        sum = sum + (temp%10) ** 3
        temp //= 10             #如何保证每一个数循环三次后再进行下一个数的循环呢。
    if sum == i:
        print(i)

最佳答案

查看完整内容

python的循环语句和C语言的思想很像,for i in range(100,1000)是指i作为一个变量从100开始执行循环内语句,然后加一直到999,i的作用是计数器。temp是判断i是否满足条件做的一系列操作,但是不能改动i的值,比如i为120进入循环,循环若是改变的i的值,那么本次循环结束后会判断改动后的i比如1200是否在100-999,不是则跳出for循环,120以后的数字将不会再考虑是否为水仙花数。对10取余操作是取操作数即temp的个位数,此时temp还 ...
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-3-1 13:30:14 | 显示全部楼层
python的循环语句和C语言的思想很像,for  i  in range(100,1000)是指i作为一个变量从100开始执行循环内语句,然后加一直到999,i的作用是计数器。temp是判断i是否满足条件做的一系列操作,但是不能改动i的值,比如i为120进入循环,循环若是改变的i的值,那么本次循环结束后会判断改动后的i比如1200是否在100-999,不是则跳出for循环,120以后的数字将不会再考虑是否为水仙花数。对10取余操作是取操作数即temp的个位数,此时temp还是为三位数,然后地板除法后,temp中的个位数变为小数点后一位被舍去,temp变为两位数,其中十位数成为个位数,下次循环时再次取出个位数即原temp的十位数,第三次循环时小于10的数除以10是0余它本身,所以循环末尾temp的百位数被取出,且temp变为0,while循环结束。接下来就是判断,然后计数的i再加一。希望能帮到你。

评分

参与人数 1鱼币 +1 收起 理由
libinlibin + 1

查看全部评分

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

使用道具 举报

发表于 2017-3-1 14:54:10 | 显示全部楼层
while temp:里,如果temp是0就结束了,temp//=10,三位数,除3次就是0。然后故事就结束了。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-3-1 18:52:01 | 显示全部楼层
不如喝牛奶 发表于 2017-3-1 13:30
python的循环语句和C语言的思想很像,for  i  in range(100,1000)是指i作为一个变量从100开始执行循环内语 ...

谢谢,明白啦
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 06:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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