Как найти количество четных цифр питон

Перейти к содержанию

На чтение 2 мин Просмотров 1.6к. Опубликовано 27.01.2023

Содержание

  1. Введение
  2. Написание кода программы для подсчёта чётных и нечётных цифр числа
  3. Заключение

Введение

В ходе статьи напишем программу для подсчёта чётных и нечётных цифр в числе на языке программирования Python.

Написание кода программы для подсчёта чётных и нечётных цифр числа

Для начала дадим пользователю возможность ввода числа и создадим две переменные, одна для чётных цифр, вторая для нечётных:

number = int(input('Введите число: '))
# Для чётных цифр
even = 0
# Для нечётных цифр
odd = 0

Создадим цикл while, который не закончится пока number > 0:

number = int(input('Введите число: '))

even = 0
odd = 0

while number > 0:

Внутри цикла зададим условие, если number делится на 2 без остатка, то цифра чётная и прибавляем к even единицу, если условие не сработало, то цифра нечётная и прибавляем единицу к odd:

number = int(input('Введите число: '))

even = 0
odd = 0

while number > 0:
    if number % 2 == 0:
        even += 1
    else:
        odd += 1

После условия делим number целочисленно на 10, чтобы избавиться от цифры, которая уже была проверена:

number = int(input('Введите число: '))

even = 0
odd = 0

while number > 0:
    if number % 2 == 0:
        even += 1
    else:
        odd += 1
    number = number // 10

Выведем результат используя форматирование f-string:

number = int(input('Введите число: '))

even = 0
odd = 0

while number > 0:
    if number % 2 == 0:
        even += 1
    else:
        odd += 1
    number = number // 10

print(f'Количество чётных цифр: {even}')
print(f'Количество нечётных цифр: {odd}')

Проверка программы:

Введите число: 9876124
Количество чётных цифр: 4
Количество нечётных цифр: 3

Заключение

В ходе статьи мы с Вами написали программу для подсчёта чётных и нечётных цифр в числе на языке программирования Python. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Admin

Посчитать четные и нечетные цифры числа

Определить, сколько в числе четных цифр, а сколько нечетных. Число вводится с клавиатуры.

Решение задачи на языке программирования Python

Если число делится без остатка на 2, его последняя цифра четная. Увеличиваем на 1 счетчик четных цифр even. Иначе последняя цифра числа нечетная, увеличиваем счетчик нечетных цифр odd.

В Python операцию нахождения остатка от деления выполняет знак %.

Чтобы избавиться от младшего уже учтенного разряда, число следует разделить нацело на 10. Деление нацело обозначается двумя слэшами //.

a = int(input())
 
even = 0
odd = 0
 
while a > 0:
    if a % 2 == 0:
        even += 1
    else:
        odd += 1
    a = a // 10
 
print(f'Even: {even}, odd: {odd}')

Пример выполнения:

Кроме чисто математического подхода в 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. В иных случаях – ложь.

Больше задач в PDF

you are comparing the whole number every time. you need to convert it to a string and then loop over every number in that string of numbers, cast it back to an integer and see if its remainder is 0

def num_even_digits(numbers):
    count = 0
    numbers = str(numbers)
    for number in numbers:
        try:
            number = int(number)
        except ValueError:
            continue

        if number % 2 == 0:
            count += 1
    return count

print(num_even_digits(123456))

if you want to actually loop through every possible number in the range of 0 to your large number you can do this.

def num_even_digits(numbers):
    count = 0
    for number in range(0, numbers):
        if number % 2 == 0:
            count += 1
    return count

print(num_even_digits(10))

problems with your current function:

def num_even_digits(n): # n is not descriptive, try to make your variable names understandable
    i=0
    count = 0
    while i < n: # looping over every number from 0 to one hundred twenty three thousand four hundred and fifty six.
        i+=1
        if n%2==0: # n hasn't changed so this is always going to be true
            count += 1
    return count

print(num_even_digits(123456))

1 / 0 / 0

Регистрация: 13.11.2019

Сообщений: 22

1

Вывести количество четных цифр числа

23.06.2020, 10:25. Показов 19378. Ответов 5


Студворк — интернет-сервис помощи студентам

Написать программу, которая выводит на экран количество четных цифр числа



0



Catstail

Модератор

Эксперт функциональных языков программированияЭксперт Python

35198 / 19414 / 4063

Регистрация: 12.02.2012

Сообщений: 32,431

Записей в блоге: 13

23.06.2020, 10:33

2

Python
1
2
3
4
5
6
7
8
9
def task(n):
    if n==0:
       return 1
    s=0
    while(n>0):
       if n%10==0:
          s+=1
       n=n//10
    return s



0



zhurban

289 / 191 / 104

Регистрация: 14.11.2017

Сообщений: 489

23.06.2020, 10:34

3

Лучший ответ Сообщение было отмечено Jojo14 как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
count = 0
number = int(input("Enter a number: "))
if number == 0:
    count += 1
else:
    while number > 0:
        if number % 10 % 2 == 0:
            count += 1
        number = number // 10
print("Total number of even digits:", count)



1



Модератор

Эксперт функциональных языков программированияЭксперт Python

35198 / 19414 / 4063

Регистрация: 12.02.2012

Сообщений: 32,431

Записей в блоге: 13

23.06.2020, 10:36

4

zhurban, а если задать нуль?



1



289 / 191 / 104

Регистрация: 14.11.2017

Сообщений: 489

23.06.2020, 10:40

5

Catstail, упс
Спасибо



0



Catstail

Модератор

Эксперт функциональных языков программированияЭксперт Python

35198 / 19414 / 4063

Регистрация: 12.02.2012

Сообщений: 32,431

Записей в блоге: 13

23.06.2020, 10:44

6

Еще вариант:

Python
1
2
def task(n):
    return len(list(filter(lambda x: int(x)%2==0,str(n))))



0



Суть кода в том что – ‘Пользователь вводит число (a). Найти количество всех нечетных чисел, на диапазоне
Я настрогал пару строчек кода, но все равно не выходит в ответе. Когда ввожу даже 1 число просто ничего не выводиться, и даже причину не могу понять.

a= input('Введите первое число:')
def sum():
     if a / 2 == 0:
           print ('четное число')
     else:
          print ('Нечетное число')

GrAnd's user avatar

GrAnd

13.4k1 золотой знак8 серебряных знаков23 бронзовых знака

задан 15 янв 2022 в 10:37

monkeykong's user avatar

1

Я так понимаю, тебе нужно найти количество чётных чисел в определенном вводимом диапазоне.

num1 = int(input('Введи первое число: ')) // Пользователь вводит первое число
num2 = int(input ('Введите второе число: ')) // Пользователь вводит второе число
k = 0 // Добавляем переменную куда будем плюсовать количество чётных чисел

for i in range(num1,num2+1): // Создаём цикл в диапазоне введённых цифр (+1 во втором аргументе, потому что в range доходит ДО числа, а не ДО ВКЛЮЧИТЕЛЬНО этого числа)
    if i % 2 == 0: // Проверяем на чётность (если чётное делаем:)
        k +=1 // Если число чётное +1
print (k)

ответ дан 15 янв 2022 в 11:18

BnLvT's user avatar

BnLvTBnLvT

285 бронзовых знаков

  1. Введённое значение преобразовать в число при помощи функции int().
  2. Проверять остаток от деления a % 2 == 0.
  3. Ну и функцию таки следует вызвать sum().
a = int(input('Введите первое число: '))
def sum():
     if a % 2 == 0:
          print ('четное число')
     else:
          print ('Нечетное число')
sum()

P.S. Вообще-то есть встроенная функция с таким именем, так что называя свою так же вы лишаетесь доступа к ней. Так что лучше не называть что-либо стандартными именами.

ответ дан 15 янв 2022 в 10:48

GrAnd's user avatar

GrAndGrAnd

13.4k1 золотой знак8 серебряных знаков23 бронзовых знака

Добавить комментарий