python中的一个小函数

时间:2016-11-24 12:20:16

标签: python python-2.7 function

def square_digits(num):
    result = []
    if num > 0:
        result.append(num%10)
        num= num//10
    list = ''
    for i in result:
        list += str(i**2)
    return int(list)

这是一个小函数,我想对数字的每个数字进行平方,就像'991'通过函数运行一样,'81811'将会出现。但是我总是错误地回答'81'。任何人都可以弄明白发生了什么?

2 个答案:

答案 0 :(得分:2)

if替换为while,否则只会计算第一个数字的平方:

 def square_digits(num):
    result = []
    while num > 0:
        result.append(num%10)
        num= num//10
    list = ''
    for i in result:
        list += str(i**2)
    return int(list)

答案 1 :(得分:0)

以下是更正的答案发布,因为之前的答案不接受编辑(否则不接受)

 def square_digits(num):
    result = []
    while num > 0:
        result.append(num%10)
        num= num//10
    list = ''
    result.reverse()
    for i in result:
        list += str(i**2)
    return int(list)