我正试图解决这个问题:
从键盘输入两个至少有三位数的数字。
打印数字总和更大的数字。
在函数内部,我试图打印变量的值。 这些变量的值没有打印出来,所以我认为该函数没有被执行。
a = input('\n Enter the first number : ' )
x = sum([a])
print('\n The sum of the digits number ' +str(x)+ ' este : %d' %x)
b = input('\n Enter the second number : ')
y = sum([b])
print('\n The sum of the digits number ' +str(y)+ ' este : %d' %y)
def sum(param):
var = 0
while(param != 0):
var += (param % 10)
print(var)
param /= 10
print(param)
return var
答案 0 :(得分:2)
在定义函数之前调用函数。将其移至程序的开头。
def mysum(param):
var = 0
while(param != 0):
var += (param % 10)
print(var)
param /= 10
print(param)
return var
a = input('\n Enter the first number : ' )
x = mysum([a])
print('\n The sum of the digits number ' +str(x)+ ' este : %d' %x)
b = input('\n Enter the second number : ')
y = mysum([b])
print('\n The sum of the digits number ' +str(y)+ ' este : %d' %y)
哦,不要覆盖内置sum
(这就是我使用mysum
的原因)。
此外,可以使用map
和sum
来计算数字之和:
sum_of_digits = sum(int(x) for x in str(123) if x.isdigit())
或作为一项功能:
def sum_of_digits(numstr):
return sum(int(x) for x in str(numstr) if x.isdigit())