我们今年刚开始在学校学习python,到目前为止,我们只在用tkinter画布(画室、花等)做一些基本的东西,我们的老师有点差劲,所以我现在必须自己学习我所知道的一切。你知道吗
我一直在考虑写一个函数来求一个数的数字和(最好不要递归),所以我想到了这个:
def sum(n):
total=0
for letter in str(n):
total+=int(letter)
return total
但是后来,我想到了用递归来找到“绝对挖掘”。“数字的总和”,例如99=9+9=18=>;1+8=9 我想到了这个
total=0
def suma(n):
global total
def part_sum(n):
global total
total_part=0
for letter in str(n):
total_part+=int(letter)
total=total_part
if total<10:
print(total)
else:
part_sum(total)
part_sum(n)
它基本上是一个n的和,检查它是否小于n,如果不是,它再次运行它(基本递归),但是它使用了一堆变量和全局变量(因为某些原因我听说是不好的),我很清楚使用类和对象可以更有效地完成,但是我只看了几个视频所以我不太擅长。你知道吗
有人可以编辑我的代码,并粘贴在这里与一些注释,以帮助我理解它吗?你知道吗
这是我的解决办法
你可以把
map
想象成接受map(function, [input1, input2, input3])
并返回[function(input1), function(input2), function(input3)]
而不是保存变量并在循环的每次迭代中更新它(通常的方法是这样做的):
将其作为参数发送到新函数调用:
您还可以创建一个递归函数来进行初始求和,并在函数中使用它,直到它只有一个数字:
递归经常被过度使用。我相信没有它你可以写得更清楚。建立在你已经创造的基础上。你知道吗
相关问题 更多 >
编程相关推荐