python程序设计

写一个函数,求一个非负整数的各个数字之和。例如,43257的各个数字之和喂4+3+2+5+7。在主程序中调用该函数并输出结果

def sum_of_digits(n):
    sum = 0
    while n > 0:
        digit = n % 10
        sum += digit
        n //= 10
    return sum
 
n = 43257
digit_sum = sum_of_digits(n)
print("数字 %d 的各个数字之和为 %d" % (n, digit_sum))

def sum_of_digits(num):
    """
    求一个非负整数的各个数字之和
    """
    assert num >= 0, "非负整数输入错误!"
    # 将整数转换为字符串,逐个字符求和
    sum_digit = 0
    for digit in str(num):
        sum_digit += int(digit)
    return sum_digit

num = 43257
digit_sum = sum_of_digits(num)
print("{} 的各个数字之和是:{}".format(num, digit_sum))

def sum_(data):
    if data <= 0:
        return 0
    return data % 10 + sum_(data // 10)


if __name__ == '__main__':
    res = sum_(43257)
    print(res)

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7703574
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:Python编程从入门到实践:练习题 7-4比萨配料
  • 除此之外, 这篇博客: python经典练习题及面试题中的 42.如果一个数恰好等于它的因子之和,则称该数为“完全数”,又称完美数或完备数。 例如:第一个完全数是 6,它有约数 1、2、3、6,除去它本身 6 外,其余3 个数相加,1+2+3=6。第二个完全数是 28,它有约数 1、2、4、7、14、28,除去它本身 28外,其余 5 个数相加,1+2+4+7+14=28。那么问题来了,求 1000 以内的完全数有哪些? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • a = []
    for i in range(1, 1000):
        s = 0
        for j in range(1, i):
            if i % j == 0 and j < i:
                s += j
        if s == i:
            print(i)
            a.append(i)
    print("1000 以内完全数:%s" % a)
    

    在这里插入图片描述

  • 您还可以看一下 CSDN就业班老师的Python全栈工程师特训班第十五期-直播回放课程中的 Python全栈工程师特训班第十五期-第四周-7小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    解决方案:

    可以使用Python中的字符串操作,将输入的数字转换成字符串,然后将数字逐个取出并转换成整数,最后求和即可。

    代码如下:

    def sum_digits(num): """ 计算非负整数数字之和 """ # 将数字转换为字符串 num_str = str(num) # 初始化数字之和 result = 0 # 逐个取出数字并求和 for digit in num_str: result += int(digit) # 返回数字之和 return result

    测试

    num = 43257 result = sum_digits(num) print(result)

    输出:21

    在这里,我们定义了一个名为sum_digits的函数,它接受一个非负整数作为参数,并返回其各个数字之和。首先,我们将数字转换为字符串形式,以便于逐个取出每一位数字。然后,我们初始化数字之和为0,并使用for循环遍历字符串中的每一个数字,并将其转换为整数后加到数字之和中。最后,函数返回求和结果。在主程序中,我们测试了函数的正确性,将43257作为参数传入该函数,并将计算结果输出到屏幕上,输出结果为21。

    需要注意的是,在sum_digits函数的输入参数num为非负整数时,函数的功能是正确的。但是,当输入的是负数时,函数的结果就不正确了。因此,如果需要对该函数扩展,以支持负数的求和操作,需要对其进行修改。