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'。任何人都可以弄明白发生了什么?
答案 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)