醒醒来了 发表于 2020-2-17 00:36:03

Python 第009讲 《了不起的分支和循环》水仙花

for i in range(100, 1000):
    sum = 0
    temp = i
    while temp:
      sum = sum + (temp%10) ** 3
      temp //= 10         # 注意这里要使用地板除哦~
    if sum == i:
      print(i)


始终看不明白4、5、6行,求帮助

无视网速 发表于 2020-2-17 00:55:16

数字 0 也代表 false,
所以在while循环时,temp //= 10同时起到了结束循环的作用,
temp与10循环进行地板除,使temp最终为 0 (也就是false),结束了while循环。
希望能帮上忙~{:10_254:}

隋戈子 发表于 2020-2-17 08:08:22

我昨天问的同样的问题
https://fishc.com.cn/forum.php?mod=redirect&goto=findpost&ptid=156572&pid=4364369

物火卿腾 发表于 2020-2-17 08:43:34

这还有:while的用法
https://fishc.com.cn/thread-156603-1-1.html
(出处: 鱼C论坛)
{:10_257:}

dudaguo 发表于 2020-2-17 10:01:51

for i in range(100, 1000):
    sum = 0
    temp = i
    while temp:                                          
      sum = sum + (temp%10) ** 3            这里temp是3位数,第一次循环(temp%10)**3得到个位数的立方并加入sum,
                                                                                             第二次循环(temp%10)**3得到十位数的立方并加入sum,
                                                                                          第三次循环(temp%10)**3得到百位数的立方并加入sum    这时sum=个位数的立方+十位数的立方+百位数的立方

      temp //= 10         # 注意这里要使用地板除哦~      这里temp是个三位数 ,是第一次temp整除10后变2位数;第二次temp整除10后变1位数;第三次temp整除10后变0;循环终止。
    if sum == i:         
      print(i)


这样可以看懂吗?

页: [1]
查看完整版本: Python 第009讲 《了不起的分支和循环》水仙花