<p>我们今年刚开始在学校学习python,到目前为止,我们只在用tkinter画布(画室、花等)做一些基本的东西,我们的老师有点差劲,所以我现在必须自己学习我所知道的一切。你知道吗</p>
<p>我一直在考虑写一个函数来求一个数的数字和(最好不要递归),所以我想到了这个:</p>
<pre><code>def sum(n):
total=0
for letter in str(n):
total+=int(letter)
return total
</code></pre>
<p>但是后来,我想到了用递归来找到“绝对挖掘”。“数字的总和”,例如99=9+9=18=>;1+8=9
我想到了这个</p>
<pre><code>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)
</code></pre>
<p>它基本上是一个n的和,检查它是否小于n,如果不是,它再次运行它(基本递归),但是它使用了一堆变量和全局变量(因为某些原因我听说是不好的),我很清楚使用类和对象可以更有效地完成,但是我只看了几个视频所以我不太擅长。你知道吗</p>
<p>有人可以编辑我的代码,并粘贴在这里与一些注释,以帮助我理解它吗?你知道吗</p>
<p>递归经常被过度使用。我相信没有它你可以写得更清楚。建立在你已经创造的基础上。你知道吗</p>
<pre><code>def sum(n):
total=0
for letter in str(n):
total+=int(letter)
return total
def suma(n):
while n >= 10:
n = sum(n)
return n
</code></pre>