Python 如何计算整数的各个数字之和,并在末尾打印原始整数?

Python 如何计算整数的各个数字之和,并在末尾打印原始整数?,python,Python,我希望在Python中创建一个函数来计算给定数字的各个数字之和 作为参数传递给它 我的代码如下: number = int(input("Enter a number: ")) sum = 0 while(number > 0): remainder = number % 10 sum = sum + remainder number = number //10 print("The sum of the digits of the

我希望在Python中创建一个函数来计算给定数字的各个数字之和 作为参数传递给它

我的代码如下:

number = int(input("Enter a number: "))
sum = 0

while(number > 0):
    remainder = number % 10
    sum = sum + remainder
    number = number //10

print("The sum of the digits of the number ",number," is: ", sum)
这段代码一直工作到最后一个print命令,我需要打印原始数字+语句+总和。问题是每次总和正确时,原始数字都会变为0

如何计算该值,同时在打印命令中显示原始数字?

number=输入一个数字: 总计=listnumber中x的sumintx 打印数字的位数之和,数字为:,总计
正如所指出的,甚至不需要转换为int,因为我们一次只操作一个字符。

保留另一个变量来存储原始数字

number = int(input("Enter a number: "))
original = number
# rest of the code here
另一种解决方法是:

您不必将数字解析为int,而是将其视为从输入函数返回的str。然后迭代每个字符数字并添加它们

number = input("Enter a number: ")
total = sum(int(d) for d in number)
print(total)

无需转换为int即可完成此操作:

ORD0 = ord('0')
number = input("Enter a number: ")
nsum = sum(ord(ch) - ORD0 for ch in number)

它将计算垃圾,如果有人输入的不是一个数字

为什么你不能使用另一个变量来存储数字的原始值,然后在最后打印出来?无关:不要使用sum作为变量标识符,因为有一个同名的内置函数即将发布类似的内容。。。Digital_sum=sum[intx for x in'123']将数字转换为字符串不是表示数字实际和的干净方法,因为您正在创建一个不必要的对象。更好的解决方案是创建一个单独的函数,该函数返回数字的总和,而不创建字符串。@AndrewMascillaro这是正确的,但对于单行程序来说,这是很难做到的\_ツ_/“我们不知道为什么OP需要通过模运算对数字求和,所以我认为更好的答案是,在保留代码的同时,只给出他们想要的,而不是从头重写代码。