例如,如果我们通过该函数运行5678,则会出现25364964。所以我写了这样的代码。
number = 5678
for ch in str(number):
print (int(ch)**2, end="")
得到了正确的输出。
25364964
但是,如果我将此代码放在某个函数下,则预期结果不会显示。
def square_every_number(number):
for ch in str(number):
return ((int(ch)**2))
print(square_every_number(5678))
输出:
25
我只得到第一个数字的正方形。
答案 0 :(得分:6)
您将在第一个循环中返回。你应该建立你的结果并返回它。
def square_every_number(number):
res = ''
for ch in str(number):
res = res + str(int(ch)**2)
return res
或更短的功能:
def square_every_number(number):
return ''.join(str(int(ch)**2) for ch in str(number))
答案 1 :(得分:-1)
您在对第一个角色进行平方后返回,请尝试对每个角色进行平方并在函数中形成结果数字并返回最终结果,如下所示。
def sq_every_num(number):
result = ''
for ch in str(number):
result += str(int(ch) ** 2)
return int(result)
输出:
result = sq_every_num(5678)
print result, type(result)
25364964 < type 'int'>