我的功能没有执行

时间:2016-04-18 19:09:18

标签: python

我正试图解决这个问题:

  

从键盘输入两个至少有三位数的数字。

     

打印数字总和更大的数字。

在函数内部,我试图打印变量的值。 这些变量的值没有打印出来,所以我认为该函数没有被执行。

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

1 个答案:

答案 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的原因)。

此外,可以使用mapsum来计算数字之和:

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())