Python平方函数和

时间:2013-05-03 21:30:36

标签: python function sum

我对这最后一个问题感到很麻烦。它出自“如何像计算机科学家一样思考”一书。你能帮助我吗?

编写一个函数sum_of_squares_of_digits,用于计算传递给它的整数数字的平方和。例如,sum_of_squares_of_digits(987)应返回194,因为9 * 2 + 8 * 2 + 7 ** 2 == 81 + 64 + 49 == 194。

2 个答案:

答案 0 :(得分:5)

将整数转换为字符串,然后将单个字符转换回整数:

def sum_of_squares_of_digits(value):
    return sum(int(c) ** 2 for c in str(value))

这将sum()与生成器表达式一起使用,将所有数字转回整数,将它们平方,并将结果再次求和。

演示:

>>> def sum_of_squares_of_digits(value):
...     return sum(int(c) ** 2 for c in str(value))
... 
>>> sum_of_squares_of_digits(987)
194

答案 1 :(得分:2)

您可以通过将数字转换为字符串来迭代数字的数字:

>>> n = 102
>>> for digit in str(n):
...     print(digit)
... 
1
0
2

digit仍然是一个字符串,因此您可以使用int(digit)将其转换为整数。