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

Given a list of numbers, write a Python program to count Even and Odd numbers in a List.

Example:

Input: list1 = [2, 7, 5, 64, 14]
Output: Even = 3, odd = 2

Input: list2 = [12, 14, 95, 3]
Output: Even = 2, odd = 2

Example 1: 

Count Even and Odd numbers from the given list using for loop Iterate each element in the list using for loop and check if num % 2 == 0, the condition to check even numbers. If the condition satisfies, then increase the even count else increase odd count. 

Python3

list1 = [10, 21, 4, 45, 66, 93, 1]

even_count, odd_count = 0, 0

for num in list1:

    if num % 2 == 0:

        even_count += 1

    else:

        odd_count += 1

print("Even numbers in the list: ", even_count)

print("Odd numbers in the list: ", odd_count)

Output:

Even numbers in the list:  3
Odd numbers in the list:  4

Time Complexity: O(N), Here N is the number of elements in the list.
Auxiliary Space: O(1), As constant extra space is used.

Example 2: Using while loop 

Python3

list1 = [10, 21, 4, 45, 66, 93, 11]

even_count, odd_count = 0, 0

num = 0

while(num < len(list1)):

    if list1[num] % 2 == 0:

        even_count += 1

    else:

        odd_count += 1

    num += 1

print("Even numbers in the list: ", even_count)

print("Odd numbers in the list: ", odd_count)

Output:

Even numbers in the list:  3
Odd numbers in the list:  4

Time Complexity: O(N), Here N is the number of elements in the list.
Auxiliary Space: O(1), As constant extra space is used.

Example 3: Using Python Lambda Expressions 

Python3

list1 = [10, 21, 4, 45, 66, 93, 11]

odd_count = len(list(filter(lambda x: (x%2 != 0) , list1)))

even_count = len(list(filter(lambda x: (x%2 == 0) , list1)))

print("Even numbers in the list: ", even_count)

print("Odd numbers in the list: ", odd_count)

Output:

Even numbers in the list:  3
Odd numbers in the list:  4

Time Complexity: O(n)
Space Complexity: O(1)

Example 4: Using List Comprehension 

Python3

list1 = [10, 21, 4, 45, 66, 93, 11]

only_odd = [num for num in list1 if num % 2 == 1]

odd_count = len(only_odd)

print("Even numbers in the list: ", len(list1) - odd_count)

print("Odd numbers in the list: ", odd_count)

Output:

Even numbers in the list:  3
Odd numbers in the list:  4

Time Complexity: O(N), Here N is the number of elements in the list.
Auxiliary Space: O(1), As constant extra space is used.

Example 5: Using Recursion

Python3

even_count = 0 

i = 0 

odd_count = 0 

def evenoddcount(lst):

    global even_count

    global odd_count

    global i

    if lst[i] % 2 == 0

        even_count += 1

    else

        odd_count += 1

    if i in range(len(lst)-1):

        i += 1 

        evenoddcount(lst) 

    else:

        print("Even numbers in the list: ", even_count)

        print("Odd numbers in the list: ", odd_count)

list1 = [10, 21, 4, 45, 66, 93, 1]

evenoddcount(list1)

Output

Even numbers in the list:  3
Odd numbers in the list:  4

Time Complexity: O(N), Here N is the number of elements in the list.
Auxiliary Space: O(1), As constant extra space is used.

Example 6: Using Bitwise XOR operator

The idea is to check whether the last bit of the number is set or not. If the last bit is set then the number is odd, otherwise even. As we know bitwise XOR Operation of the Number by 1 increments the value of the number by 1 if the number is even otherwise it decrements the value of the number by 1 if the value is odd.

CHECK IF NUMBER IS EVEN OR ODD USING XOR OPERATOR

Python3

list1 = [10, 21, 4, 45, 66, 93, 1]

even_count, odd_count = 0, 0

for num in list1:

    if num ^ 1 == num + 1:

        even_count += 1

    else:

        odd_count += 1

print("Even numbers in the list: ", even_count)

print("Odd numbers in the list: ", odd_count)

Output

Even numbers in the list:  3
Odd numbers in the list:  4

Time Complexity: O(N), Here N is the number of elements in the list.
Auxiliary Space: O(1), As constant extra space is used.

Example 7: Using Bitwise AND operator

The idea is to check whether the last bit of the number is set or not. If the last bit is set then the number is odd, otherwise even.
As we know bitwise AND Operation of the Number by 1 will be 1, If it is odd because the last bit will be already set. Otherwise, it will give 0 as output. 

Python3

list1 = [10, 21, 4, 45, 66, 93, 1]

even_count, odd_count = 0, 0

for num in list1:

    if not num & 1:

        even_count += 1

    else:

        odd_count += 1

print("Even numbers in the list: ", even_count)

print("Odd numbers in the list: ", odd_count)

Output

Even numbers in the list:  3
Odd numbers in the list:  4

Time Complexity: O(N), Here N is the number of elements in the list.
Auxiliary Space: O(1), As constant extra space is used.

Example 8: Using Bitwise OR operator

The idea is to check whether the last bit of the number is set or not. If the last bit is set then the number is odd, otherwise even. As we know bitwise OR Operation of the Number by 1 increment the value of the number by 1 if the number is even otherwise it will remain unchanged. So, if after OR operation of number with 1 gives a result which is greater than the number then it is even and we will return true otherwise it is odd and we will return false.

Python3

list1 = [10, 21, 4, 45, 66, 93, 1]

even_count, odd_count = 0, 0

for num in list1:

    if num | 1 > num:

        even_count += 1

    else:

        odd_count += 1

print("Even numbers in the list: ", even_count)

print("Odd numbers in the list: ", odd_count)

Output

Even numbers in the list:  3
Odd numbers in the list:  4

Time Complexity: O(N), Here N is the number of elements in the list.
Auxiliary Space: O(1), As constant extra space is used.

Method: Using the enumerate function 

Python3

lst = [12, 14, 95, 3];c=0;c1=0

for i,a in enumerate(lst):

    if a%2==0:

        c+=1

    else:

        c1+=1

print("even number count",c,"odd number count",c1)

Output

even number count 2 odd number count 2

Time Complexity: O(N), Here N is the number of elements in the list.
Auxiliary Space: O(1), As constant extra space is used.

Method: Using Numpy.Array : 

Python

import numpy as np

List = [10, 21, 4, 45, 66, 93, 11]

list1 = np.array(List)

Even_list = list1[list1 % 2 == 0]

print("Even numbers in the list: ", len(Even_list))

print("Odd numbers in the list: ", len(list1)-len(Even_list))

Output:

Even numbers in the list:  3
Odd numbers in the list:  4

Time Complexity: O(N), Here N is the number of elements in the list.
Auxiliary Space: O(1), As constant extra space is used.

Method: Using Numpy.where() function : 

note: install numpy module using command “pip install numpy”

Algorithm:

Convert the given list to a numpy array.
Use numpy.where() function to find the indices of even and odd numbers in the array.
Count the number of indices using the len() function.
Print the counts.

Here’s the Python program to count Even and Odd numbers in a List using numpy.where() function:

Python3

import numpy as np

list1 = [2, 7, 5, 64, 14]

arr = np.array(list1)

even_count = len(np.where(arr % 2 == 0)[0])

odd_count = len(np.where(arr % 2 == 1)[0])

print("Even numbers in the list: ", even_count)

print("Odd numbers in the list: ", odd_count)

Output:

Even numbers in the list:  3
Odd numbers in the list:  2

Time Complexity: O(N), where N is the number of elements in the list.
Space Complexity: O(N), as we create a numpy array of size N.

Method: Using Sum and len function  

Approach: 

  • Initialize list. 
  • Initialize even_count and odd_count variables to store numbers. 
  • Use Sum method which counts 1 if the number in the list is odd and store the result in odd_count. 
  • Subtract the total length list to odd_count and store the value in even_count. 
  • Print event_count and odd_count. 

Python3

list1 = [10, 21, 4, 45, 66, 93, 1]

even_count, odd_count = 0, 0

odd_count = sum(1 for i in list1 if i&1)

even_count = len(list1) - odd_count

print("Even numbers in the list: ", even_count)

print("Odd numbers in the list: ", odd_count)

Output:

Even numbers in the list:  3
Odd numbers in the list:  4

Time Complexity: O(n), where n is the length of the list.
Space Complexity: O(1), Because no extra space is used.

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

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

Решение задачи на языке программирования 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

Суть кода в том что – ‘Пользователь вводит число (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 бронзовых знака

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

На чтение 2 мин Просмотров 1.5к. Опубликовано 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

Описание задачи

Программа принимает на вход два числа, которые определяют границы диапазона, и выводит все нечетные числа в этом диапазоне.

Решение задачи

  1. Принимаем на вход два числа, которые определяют заданный диапазон, и записываем их в разные переменные.
  2. Используем цикл for для прохождения по этому диапазону.
  3. Затем используем оператор if для проверки на четность и после этого выводим нечетные числа на экран.
  4. Конец.

Исходный код

Ниже дан исходный код для вывода всех нечетных чисел из заданного диапазона. Результаты работы программы также даны ниже.

lower = int(input("Введите нижнюю границу диапазона:"))
upper = int(input("Введите верхнюю границу диапазона:"))
for i in range(lower, upper+1):
    if(i % 2 != 0):
        print(i)

Объяснение работы программы

  1. Пользователь вводит два числа, которые записываются в отдельные переменные и являются нижней и верхней границей диапазона.
  2. При помощи цикла for мы перебираем все числа в данном диапазоне.
  3. Далее используем оператор if. Выражение внутри этого оператора проверяет, равен ли остаток 0.
  4. В случае, если остаток не равен 0, мы выводим это число на экран.

Результаты работы программы

Пример 1:
Введите нижнюю границу диапазона:1
Введите верхнюю границу диапазона:16
1
3
5
7
9
11
13
15
 
Пример 2:
Введите нижнюю границу диапазона:150
Введите верхнюю границу диапазона:180
151
153
155
157
159
161
163
165
167
169
171
173
175
177
179

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