Как посчитать все четные цифры в числе? Что я делаю не так?

#python

#питон

Вопрос:

Мне нужно решить проблему, в которой мне нужно подсчитать все четные цифры в числе. В качестве примера я взял число 123456. В нем сумма четных цифр равна 2 4 6 = 12. Но я получаю 6, а не 12. Что я делаю не так?

 n = int(123456)
sum = 0
while n > 0:
    if n % 10 % 2 == 0:
        sum = sum   n % 10
    n = n/10
print(sum)
 

Я только начинаю программировать. пожалуйста, скажите мне, в чем моя ошибка.

Ответ №1:

Используйте целочисленную форму деления, и ваш код будет работать так, как вы задумали. То есть замените эту строку:

 n = n/10
 

с этим:

 n = n//10
 

Ответ №2:

Вы используете n / 10, который возвращает десятичную часть, например: 123/10 дает 12,3, поэтому вы получаете неверный вывод.

Есть два способа решить эту ошибку.

  1. использование math.floor
    n = Math.floor(n/10)

(или)

  1. используйте оператор //, который возвращает только частное.
    n = n/10