首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合作实践造就完美的digit_sum

合作实践造就完美的digit_sum
EN

Stack Overflow用户
提问于 2016-06-21 15:34:12
回答 4查看 1.2K关注 0票数 0

其目的是编写一个名为digit_sum的函数,该函数以正整数n作为输入,并返回所有该数字的数字之和。

例如: digit_sum(1234)应该返回10,即1+2+3+ 4。

(假设给出的数字总是正数。)

id=4f89dab3d788890003000096#

您的函数在digit_sum(1000)上失败。当它应该返回1时,它返回12。

如果我把dig=[]放在def digit_sum的上面,就会发生"digit_sum(1000)结果是12而不是1“的警报,但是我在本地的notepad+powershell上运行了这个程序,好的,结果是正确的。

之后,我将dig=[]放入第一行函数中,然后它正常工作。

我没拿到2分..。

  1. 函数内外的"dig=[]“有什么区别?
  2. 如果函数外的"dig=[]“是错误的,为什么我可以在本地成功地运行它.?

谢谢你们帮我.

代码语言:javascript
复制
dig=[]
def digit_sum(n):
    u=str(n)
    for i in u:
        dig.append(i)
        s=0
        for number in dig:
            int(number)
            s=s+int(number)
    return s
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-06-21 15:54:23

因此,内部和外部之间的区别是locality。当您将dig放在外部时,您将创建一个全局列表。从那以后,你就会不断地附加--名单永远不会被清除!因此,如果我运行digit_sum(1234),我正确地得到10,如果我在运行之后立即运行digit_sum(1000)dig==['1','2','3','4','1','0','0','0'],它将添加所有这些,并导致混乱。

如果您确实在函数中进行了挖掘= [],它将创建一个新的本地列表--它不是每次都会被更改,而是为每个循环创建一个新的空列表。

有时您正确获得它的原因是函数有副作用,所以调用的顺序和调用的历史都很重要。尽量避免函数的副作用--要么不修改列表,要么复制list>alter,如果您想分配新列表,就复制copy>return的副本(或者只使用新列表)。

票数 1
EN

Stack Overflow用户

发布于 2020-08-17 04:07:18

代码语言:javascript
复制
def digit_sum(n):
  n = str(n)
  total = 0
  for i in n:
    total += int(i)
  return total
票数 1
EN

Stack Overflow用户

发布于 2016-06-21 15:49:06

类似于:

代码语言:javascript
复制
def digit_sum(n):
    dig=0 # this is the result os the sum
    number=str(n) #transform the number into string so we can iterate 
    for i in range(len(number)):
        dig=dig+int(number[i]) #transform the char to int
    return dig #return the sum

我把数字(例如123)转换成一个字符串,这样我就可以得到字符串的长度(数字的数目)。然后简单地添加它们(在将它们转换为整数之后)并返回结果。

dig=[]意味着您声明了一个数组变量,这不是您想要的。如果它是在函数中声明的,这意味着当函数结束时,变量“消失”,您将无法调用它。它只存在于函数中。如果它在函数之前,则变量存在于程序的末尾。

你的观点不对。您希望用数字填充数组,然后对它们进行加和。实际上,当您为数组dig分配一个数字时,您就是在求和。例如,123将和:1然后是1+2,然后是1+2+3

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37948737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档