Определить, сколько в числе четных цифр, а сколько нечетных. Число вводится с клавиатуры.
Если число делится без остатка на 2, его последняя цифра четная. Увеличиваем на 1 счетчик четных цифр even. Иначе последняя цифра числа нечетная, увеличиваем счетчик нечетных цифр odd.
В Python операцию нахождения остатка от деления выполняет знак %.
Чтобы избавиться от младшего уже учтенного разряда, число следует разделить нацело на 10. Деление нацело обозначается двумя слэшами //.
a = input()
a = int(a)
even = 0
odd = 0
while a > 0:
if a % 2 == 0:
even += 1
else:
odd += 1
a = a // 10
print("Even: %d, odd: %d" % (even, odd))
Пример выполнения:
65439
Even: 2, odd: 3
Кроме чисто математического подхода в Python можно решить задачу «через строку». Мы не будем переводить введенное строковое представление числа к целочисленному типу, вместо этого переберем символы строки в цикле for. Каждый символ преобразуем к числу и проверим на четность.
a = input()
even = 0
odd = 0
for i in a:
if int(i) % 2 == 0:
even += 1
else:
odd += 1
print("Even: %d, odd: %d" % (even, odd))
Поскольку количество четных (как и нечетных) цифр ограничено, в программу можно включить что-то типа «базы данных» и проверять каждый символ на вхождение в нее.
a = input()
digits = "02468"
even = 0
odd = 0
for i in a:
if i in digits:
even += 1
else:
odd += 1
print("Even: %d, odd: %d" % (even, odd))
Обратим внимание, что оператор in языка Python в заголовке цикла for обозначает иное, чем в заголовке условного оператора. Логическое выражение i in digits
возвращает истину если i
входит в состав digits
. В иных случаях — ложь.