关于求 100~999 之间的所有水仙花数的程序解读。
for i in range(100, 1000):sum = 0
temp = i
while temp:
sum = sum + (temp%10) ** 3
temp //= 10 # 注意这里要使用地板除哦~
if sum == i:
print(i)
我是零基础学python,上述代码中,有几个问题,请大神勿嘲笑帮解读。
1. temp = i中,i在python里为一个正整数吗?sum = sum + (temp%10) ** 3中用temp,不用i,我记得有的代码是用i啊!
2.sum = sum + (temp%10) ** 3
temp //= 10 # 注意这里要使用地板除哦
这两行代码是核心,可我理解不了。=两边的sum肯定不是同一个数,分别代表什么意思?
3. 问题2中 代码的运算方式也无法理解。举个例子,153吧!153%10=3,这里边只有3的三次方啊。下边那行代码中,153//10=15,这个15应该在运算一次,15//10=1,完全没有提出来5啊。
即便这三个数字都提出来,又是怎么进入计算的?
如果可以帮助我理解,我一定会设为最佳答案的。 1,i是一个正整数,temp=i,所以temp也是正整数,之所以要用这个temp,就是为了保护i,防止i被改变
2,sum就是一个数,先把右边的执行完,再赋值给左边
3,不是有while temp嘛,先取出来一位乘上3次方,再扔掉这一位,之后只要temp还在就继续判断 我可能解释的不够清楚,这里放两个链接:
https://fishc.com.cn/forum.php?mod=viewthread&tid=159491&highlight=Python%2BFAQ%2B%CB%AE%CF%C9%BB%A8%CA%FD
(我写的{:10_278:},有问题可以先来这里面找找)
https://fishc.com.cn/forum.php?mod=viewthread&tid=126088&highlight=%CB%AE%CF%C9%BB%A8%CA%FD qiuyouzhi 发表于 2020-3-20 16:01
1,i是一个正整数,temp=i,所以temp也是正整数,之所以要用这个temp,就是为了保护i,防止i被改变
2,sum ...
2. 这个是不是与a=a+1类似。a=a+1的结果是一直递增吗?
3.我尝试举例解读一下。首先153%10=3;其次153进入代码 temp //= 10 中,153//10=15,这个15会自动进入上一行代码中,会什么会返回到上一个代码?得到15%10=5;然后15再进入下一行代码中,15//10=1,1再进入上一行代码中,而且不执行1%10运算,这又是为什么?求解答? 中华小鬼 发表于 2020-3-20 16:14
2. 这个是不是与a=a+1类似。a=a+1的结果是一直递增吗?
3.我尝试举例解读一下。首先153%10=3;其次153进 ...
2,是的,会一直递增
3,有一个循环用于控制(while temp)
但为什么不执行呢?你可以打印一下试试 我发过类似的帖子
页:
[1]