2016-05-02 3 views
0

Я хочу сделать приложение python, которое суммирует числа даты рождения.Python Sum отдельные целые числа

day = raw_input("What day were you born?") 
month = raw_input("What month were you born?") 
year = raw_input("What year were you born?") 
day = int(day) 
month = int(month) 
year = int(year) 

Предположим, что кто-то родился 10.12.1928; как я могу сделать это приложение таким образом: 1 + 2 + 1 + 0 + 1 + 9 + 2 + 8? Это делается на Python 2.7

PS: Я забыл упомянуть, что мой окончательный результат должен быть один значное число, так, например, в сумме выше результата 24, но это число должно подводить себя так 2 + 4 = 6, будучи 6 окончательным ответом.

+0

Ну, во-первых, не мешай преобразования этих входов в целое ... – kindall

ответ

3

Вместо приведения их в виде целых чисел, добавьте их в виде строк, а затем отобразить каждый символ как целое число и найти сумму:

day = raw_input("What day were you born?") 
month = raw_input("What month were you born?") 
year = raw_input("What year were you born?") 
print sum(map(int, day+month+year)) 

Если вы хотите сохранить, добавив цифры, пока не прибудет на один -значный номер, используйте петлю:

day = raw_input("What day were you born?") 
month = raw_input("What month were you born?") 
year = raw_input("What year were you born?") 
num = day+month+year 
while len(num) > 1: 
    num = str(sum(map(int, num))) 
print num 
+0

Как и в приведенном выше примере, конечный результат будет 24, но я хочу, чтобы конечный результат быть один значное число. Как я могу добавить 24 отдельно (т. Е. 2 ​​+ 4)? – Nicolas

+0

@NicolasMoran - Вы должны использовать цикл, чтобы продолжать добавлять цифры. – TigerhawkT3

0

Следующая функция обеспечит выход как единую цифру для любого номера входа. Просто введите ваш день, месяц, год, добавьте их и введите ввод для следующей функции.

def get_sum_as_single_digit(digit): 
    final_sum=0 
    while digit>0: 
     mod = digit%10 
     digit = digit/10 
     final_sum = final_sum + mod 
    if final_sum>9: 
     return get_single_digit_sum(final_sum) 
    else: 
     return final_sum 
Смежные вопросы