Reputation:
I'm trying to solve this problem:
Enter two numbers from keyboard with at least three digits.
Print the number that have the digits sum greater.
Inside of a function I have tried to print the values of variables. The values of those variables is not printed, so I think that the function is not being executed.
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
Upvotes: 0
Views: 60
Reputation: 31339
The calls to the function happen before the function is defined. Move it to the start of your program.
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)
Oh, and don't override the builtin sum
(that's why I used mysum
).
Also, the sum of digits can be computed by using map
and sum
:
sum_of_digits = sum(int(x) for x in str(123) if x.isdigit())
Or as a function:
def sum_of_digits(numstr):
return sum(int(x) for x in str(numstr) if x.isdigit())
Upvotes: 2