print(func(6)) # Should be 1+2+3=6
print(func(12)) # Should be 1+2+3+4+6=16

我写了一个函数,它只返回一个数字的所有分隔符的列表

def func(num):
    add=[]
    for i in range(1,num-1):
        if num%i==0:
            add.append(i)
    print(add)

#1楼 票数:2

你可以这样做:

def func(num):
    add = [i for i in range(1, num-1) if num % i == 0]
    return sum(add)

这段代码给出:

print(func(6))  # Should be 1+2+3=6
print(func(12)) # Should be 1+2+3+4+6=16

#2楼 票数:2

返回除数之和:

def sum_divisors(n):
  sum = 0
  x = 1
  while n != 0 and x < n :
      
    if n % x == 0  :
      sum += x
    else:
      sum += 0
    x += 1    
  
  return sum

#3楼 票数:1 已采纳

def func(num):
    add = []
    total_sum = 0
    for i in range(1, num - 1):
        if num % i == 0:
            add.append(str(i))
            total_sum += i

    return "{}={}".format("+".join(add), total_sum)

#4楼 票数:0

所以我不确定这正是你想要的。 但是你可以在 python 中使用 sum() 得到一个列表的总和,所以你的函数看起来像这样

def func(num):
    add=[]
    for i in range(1,num-1):
        if num%i==0:
            add.append(i)
    return sum(add)

这将返回正确的输出

print(func(6)) # Should be 1+2+3=6
print(func(12)) # Should be 1+2+3+4+6=16

它也可以写成列表理解

def list_func(num):
    return sum([i if num%i==0 else 0 for i in range(1, num-1)])

  ask by Anna Tum translate from so

未解决问题?本站智能推荐:

3回复

一个python函数,它找到一个数的最大除数,不包括它

当我写这段代码时: 它可以毫无问题地工作。 但这会产生一个问题。 它说 赋值前引用的局部变量a 我该如何解决?
3回复

如何找到一个数的所有除数的总和,而不包括它[关闭]

关闭。 这个问题需要细节或清晰。 它目前不接受答案。 想改善这个问题吗? 通过编辑此帖子添加详细信息并澄清
4回复

返回一个数字的所有除数-Python

我想在 Python 中找到一个数字的所有除数。 我在 Javascript、C#、Java 中做了大量工作,但我的 Python 代码只能正确使用print语句。 但我不想打印除数,我想将它们分配给某个变量,或者在print显示它们调用函数。
1回复

求一个数的除数之和的问题

我正在尝试创建一个程序来查找一个数的除数之和(不包括作为数本身的除数)。 我已经多次检查代码,但我的代码似乎为 24 的除数返回值“7”,即使它应该是 32。 缩进有什么问题吗? div = div + 1 是否需要在其他地方?
1回复

获取一个数除以另一个数和余数的所有次数的列表

我想要做的是将一个数字total平均分成一个列表,以便该列表包含尽可能多的相同数字split ,并且列表的总和将等于total 。 例如,给定: 我想得到一个列表: 因为50可以在120中装两次,剩下的就是20 。
5回复

一个数中所有数字的递归和

我被困在这个练习中。 任务: 数字根是一个数中所有数字的递归和。 给定 n,取 n 的数字之和。 如果该值超过一位,则继续以这种方式减少,直到产生一位数。 这仅适用于自然数。 这是它的工作原理: digital_root(16) 1 + 6 = 7 数字根(942) 9 + 4 + 2 =
17回复

获得一个数的所有除数的最佳方法是什么?

这是非常愚蠢的方式: 我想要的结果与这个类似,但我想要一个更聪明的算法(这个算法太慢太笨了:-) 我可以足够快地找到质因数及其多重性。 我有一个以这种方式生成因子的生成器: (因子 1,多重性 1) (因子2,多重性2) (因子 3,多重性 3) 等等... 即输出 是: 我不知道这对我想做的
2回复

cx_Freeze不包括库中的所有模块

所以我正在尝试使用以下代码编译一个名为“File.py”的 python 脚本: “File.py”仅使用 scipy 和 numpy,我已将它们包含在包变量中。 但是,在编译并运行 File.exe 后,出现错误:“ModuleNotFoundError:没有名为‘scipy.spatial.c