复杂的变量赋值

时间:2018-05-30 13:23:37

标签: python

我通常以这种方式进行增量:

n=0
n=n+1 # and never do n+=1

现在有一些我想要理解的代码,我很难理解它。

sum=0
temp = num
while temp > 0:
    digit = temp % 10
    # below is the line I do not understand
    sum += digit ** power # what is happening here?. with power= len(str(num))
    temp //= 10

if num == sum:
   print num    

此片段是列出阿姆斯特朗号码的一部分。

3 个答案:

答案 0 :(得分:3)

在python **中是指数的符号,因此x ** 2x^2(或x平方)。

x += gx = x + g

相同

sum += digit ** power == sum = sum + (digit ** power)

答案 1 :(得分:2)

while temp > 0:
    digit = temp % 10 
    sum += digit ** power
    temp //= 10
  1. temp

  2. 的最后一位数字
  3. sumdigit power

  4. 的力量
  5. 删除temp
  6. 的最后一位数字

答案 2 :(得分:0)

假设num = 34,然后power变为2,因此,对于第一次迭代:

digit = 4
sum = 0 + 4 ** 2 # which is 0 + 16 = 16. Then adding to sum

因此,digit ** power digit的力量为2

类似地,第二次迭代:

digit = 3
sum = 16 + 3 ** 2 # which is  16 + 9 = 25