本帖最后由 tommyyu 于 2023-1-21 12:08 编辑
在 python 中,非 0 的数都是“真”,因此 while temp 就相当于 while temp != 0,会在 temp 不为 0 时一直执行循环体内的语句。
第一句“sum = sum + (temp % 10) ** 3” 是累加最后一位数字的三次方,第二句 temp //= 10 是将 temp 的最后一位数字去掉。
比如 temp = 153,则运行过程是:
- temp = 153,while temp 成立,执行循环内语句。
- sum = sum + (153 % 10) ** 3,sum = 0 + 3 ** 3 = 27
- temp //= 10,temp = 153 //= 10 = 15
- temp = 15,while temp 成立,执行循环内语句。
- sum = sum + (15 % 10) ** 3,sum = 27 + 5 ** 3 = 152
- temp //= 10,temp = 15 //= 10 = 1
- temp = 1,while temp 成立,执行循环内语句。
- sum = sum + (1 % 10) ** 3,sum = 152 + 1 ** 3 = 153
- temp //= 10,temp = 1 //= 10 = 0
- temp = 0,while temp 不成立,循环退出。
复制代码