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

a = int(3)
c = float(3.4)
b = int(5)
d = float(4.5)

l = [
    (a + d),
    (c - b),
    (b * c),
    (d / a),
    (a ** 2),
    (a // 2),
    (a % 2)]

print("Список", l)
print("Количество элементов в списке", len(l))

l = input().split()
for i in l:
    if int(i) % 2 == 0:
        print(i)

Как правильно вывести четные числа в списке? У мене ничего не выводит…

Jack_oS's user avatar

Jack_oS

12.5k7 золотых знаков18 серебряных знаков48 бронзовых знаков

задан 10 фев 2021 в 8:42

Bohdan's user avatar

2

чтобы получить числа вместо

l = input().split()

(так вы получаете только список строк)

надо сделать так:

l = list(map(int, input().split()))

или так:

l = [int(obj) for obj in input().split()]

список четных чисел можно получить так:

arr = [i for i in l if i % 2 == 0]

ответ дан 10 фев 2021 в 8:44

Zhihar's user avatar

ZhiharZhihar

36.8k4 золотых знака25 серебряных знаков65 бронзовых знаков

7

  1. Вы затираете сформированный вами список новым списком, полученным через input. Попробуйте ввести числа через пробел и вы увидите результат: 1 2 3 4 5. Выведутся 2 и 4.
  2. В сформированном вами списке нет чётных чисел, поэтому ничего не выведется из этого списка, если вы закомментируете строку с input и используете ваш список из кода.

Вот вывод вашего кода, чётных чисел тут просто нет:

Список [7.5, -1.6, 17.0, 1.5, 9, 1, 1]
Количество элементов в списке 7

ответ дан 10 фев 2021 в 9:37

CrazyElf's user avatar

CrazyElfCrazyElf

65.4k5 золотых знаков19 серебряных знаков50 бронзовых знаков

You’re almost there! 🙂

Check what the builtin max function does.

def maximum_even_each_list_in_lol (lol):
    evens=[0]  # Dirty trick to ensure that regardless of the `even` numbers
               # found, you'll always have a zero among the results.
    for number in lol:
        if is_even(number):
            evens.append(number)
    print "I found these even numbers (%s) among %s" % (evens, lol)
    return max(evens)  # Return the maximum value among the `evens` list.
results = []
for lst in [[1,2,3],[6,5,4],[5,7,9]]:
    print "Studying %s" % lst
    results.append(maximum_even_each_list_in_lol(lst))
print "This is what I found: %s" % results

I added some print statements to help follow what the code is doing. The code above will output:

Studying [1, 2, 3]
I found these even numbers ([0, 2]) among [1, 2, 3]
Studying [6, 5, 4]
I found these even numbers ([0, 6, 4]) among [6, 5, 4]
Studying [5, 7, 9]
I found these even numbers ([0]) among [5, 7, 9]
This is what I found: [2, 6, 0]

Печать четных и нечетных чисел из списка Python – хорошее упражнение, если вы только начинаете работать с Python и хотите изучить его основы.

Чтобы извлечь четные и нечетные числа из списка Python, вы можете использовать цикл for и оператор Python по модулю. Второй вариант – заменить цикл for на понимание списка. Расширенный синтаксис оператора среза также позволяет нам делать это с помощью одной строки кода, но только тогда, когда у вас есть списки последовательных чисел.

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

Давайте начнем!

Как вывести нечетные числа из списка в Python?

Чтобы вывести нечетные числа из списка чисел, вы можете использовать оператор Python по модулю, связанный с математической концепцией остатка.

При делении нечетного числа на 2 остаток от деления равен 1. При делении четного числа на 2 остаток от деления равен 0.

Давайте воспользуемся этой концепцией и циклом Python for для вывода нечетных чисел из списка.

def get_odd_numbers(numbers):
    odd_numbers = []
    for number in numbers:
        if number % 2 == 1:
            odd_numbers.append(number)
    return odd_numbers

Перед запуском цикла for мы определяем пустой список, затем на каждой итерации цикла for мы добавляем в список нечетные числа.

numbers = [2, 3, 6, 8, 13, 45, 67, 88, 99, 100]
print(get_odd_numbers(numbers))
[output]
[3, 13, 45, 67, 99]

Как вывести четные числа из списка в Python?

Это очень похоже на то, что мы видели в предыдущем разделе …

Чтобы вывести четные числа из списка чисел, мы можем извлечь числа, которые при делении на 2 возвращают остаток, равный 0.

Код идентичен тому, который мы создали для извлечения нечетных чисел с небольшой разницей в условии if внутри цикла for.

def get_even_numbers(numbers):
    even_numbers = []
    for number in numbers:
        if number % 2 == 0:
            even_numbers.append(number)
    return even_numbers

И результат функции …

numbers = [2, 3, 6, 8, 13, 45, 67, 88, 99, 100]
print(get_even_numbers(numbers))
[output]
[2, 6, 8, 88, 100]

Как создать функцию, разделяющую четные и нечетные числа в списке

Чтобы разделить нечетные и четные числа в списке, мы могли бы использовать тот же подход, основанный на цикле for, который использовался ранее, и сгенерировать два разных списка, один для нечетных и один для четных чисел.

Вместо этого я хочу сделать наш код более кратким, используя понимание списков.

Мы по-прежнему будем использовать понятие остатка …

Давайте создадим базовую функцию, которая принимает список в качестве аргумента и возвращает два списка, один из которых содержит нечетные числа, а другой – четные.

def split_list_even_odd(numbers):
    odd_numbers = [number for number in numbers if number % 2 == 1]
    even_numbers = [number for number in numbers if number % 2 == 0]
    return odd_numbers, even_numbers

Обратите внимание, что эта функция возвращает два списка Python.

Вы знаете, в каком формате эти списки получает вызывающий функцию?

Давайте разберемся…

numbers = [2, 3, 6, 8, 13, 45, 67, 88, 99, 100]
print(split_list_even_odd(numbers))
[output]
([3, 13, 45, 67, 99], [2, 6, 8, 88, 100])

Вызывающая функция получает кортеж с двумя элементами. Мы можем получить доступ к каждому из них, используя квадратные скобки и индекс.

print("The odd numbers are {}".format(split_list_even_odd(numbers)[0]))
print("The even numbers are {}".format(split_list_even_odd(numbers)[1]))
[output]
The odd numbers are [3, 13, 45, 67, 99]
The even numbers are [2, 6, 8, 88, 100]

Если вы хотите узнать больше о синтаксисе .format (), используемом в операторе печати, вы можете взглянуть на этот учебник по объединению строк Python.

Программа для печати четных и нечетных чисел от 1 до 100

Чтобы напечатать четные и нечетные числа от 1 до 100, мы могли бы сначала создать наш список чисел вручную, но это займет много времени!

Вместо этого мы будем использовать функцию Python range ().

Вот как вы можете генерировать числа от 1 до 100 с помощью функции Python range ().

>>> numbers = range(1,101)
>>> print(type(numbers))
<class 'range'>

Интересно, что тип объекта, возвращаемого функцией range (), не является списком.

Итак, что мы можем с этим сделать?

Мы все еще можем использовать цикл for или понимание списка, чтобы просмотреть все числа …

>>> [number for number in numbers]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]

Используйте созданную нами ранее функцию для печати четных и нечетных чисел.

def split_list_even_odd(numbers):
    odd_numbers = [number for number in numbers if number % 2 == 1]
    even_numbers = [number for number in numbers if number % 2 == 0]
    return odd_numbers, even_numbers

numbers = range(1,101)
print("The odd numbers are {}".format(split_list_even_odd(numbers)[0]))
print("The even numbers are {}".format(split_list_even_odd(numbers)[1]))
[output]
The odd numbers are [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]
The even numbers are [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100]

Как вывести нечетные числа из списка последовательных чисел в Python?

Самый простой способ распечатать нечетные числа из списка последовательных чисел – использовать расширенный синтаксис оператора среза.

Оператор среза возвращает фрагмент списка с заданным начальным индексом (включенным) и конечным индексом (не включенным).

list[start_index:end_index]

Давайте создадим список, содержащий числа от 1 до 10:

>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Чтобы получить первые 4 элемента списка со стандартным синтаксисом оператора среза, мы можем использовать следующее выражение.

>>> numbers[0:4]
[1, 2, 3, 4]

Примечание: как упоминалось ранее, конечный индекс не включается в список, возвращаемый оператором среза.

Чтобы получить полный список с помощью оператора среза, вы можете использовать следующий синтаксис:

>>> numbers[:]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Хорошо, но как это помогает нам получать только нечетные числа?

Для этого мы должны кое-что добавить к базовому синтаксису оператора среза, поэтому он называется расширенным синтаксисом.

С расширенным синтаксисом вы можете передать третий аргумент оператору среза – этот аргумент определяет шаг между элементами, которые должны быть извлечены из списка.

list[start_index:end_index:step]

Например, если значение шага равно 2, оператор среза будет извлекать каждые 2 числа.

Теперь, когда мы это знаем, мы готовы извлечь нечетные числа из нашего списка …

>>> numbers[::2]
[1, 3, 5, 7, 9]

В основном мы получаем полный список, потому что мы не указали начальный и конечный индексы. Кроме того, мы получаем только нечетные числа, потому что мы указали шаг, равный 2.

Как вывести четные числа из списка последовательных чисел в Python?

Это очень похоже на то, что мы видели в предыдущем разделе …

Чтобы распечатать четные числа из списка последовательных чисел Python, вы можете использовать расширенный синтаксис среза с начальным индексом, равным 1, пустым конечным индексом и шагом, равным 2.

>>> numbers[1::2]
[2, 4, 6, 8, 10]

И вуаля!

Это довольно просто, если вы привыкнете к синтаксису оператора среза.

Программа Python для печати наибольшего четного и наибольшего нечетного числа в списке

Чтобы напечатать наибольшее четное и нечетное число в списке Python, мы можем начать с понятий, которые мы видели ранее, связанных с оператором среза.

Еще нам необходимо применить функцию max () к списку, возвращаемому оператором среза.

Наибольшее нечетное число

>>> max(numbers[::2])
9

Наибольшее четное число

>>> max(numbers[1::2])
10

Красиво и просто 🙂

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

Прежде чем завершить это руководство, давайте посмотрим, как мы можем использовать функцию ввода Python для получения списка чисел из пользовательского ввода.

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

>>> numbers = input("Please provide a list of numbers (separated by space): ")
Please provide a list of numbers (separated by space): 1 3 6 37 56 23 89 103 346
>>> print(numbers)
1 3 6 37 56 23 89 103 346
>>> print(type(numbers))
<class 'str'>

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

Метод Python string split () позволяет преобразовать строку в список.

>>> print(numbers.split())
['1', '3', '6', '37', '56', '23', '89', '103', '346']

Это шаг вперед, но у нас все еще есть список строк, а вместо него нужен список целых чисел.

Понимание списка и функция Python int () могут использоваться для преобразования списка строк в список целых чисел:

>>> numbers = ['1', '3', '6', '37', '56', '23', '89', '103', '346']
>>> [int(number) for number in numbers]
[1, 3, 6, 37, 56, 23, 89, 103, 346]

Отлично! 🙂

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

def get_integers(numbers):
    return [int(number) for number in numbers.split()]

После преобразования пользовательского ввода в список целых чисел мы можем вызвать созданную ранее функцию split_list_even_odd ().

Вот полная программа:

def get_integers(numbers):
    return [int(number) for number in numbers.split()]
def split_list_even_odd(numbers):
    odd_numbers = [number for number in numbers if number % 2 == 1]
    even_numbers = [number for number in numbers if number % 2 == 0]
    return odd_numbers, even_numbers
numbers = input("Please provide a list of numbers (separated by space): ")
numbers = get_integers(numbers)
print("The odd numbers are {}".format(split_list_even_odd(numbers)[0]))
print("The even numbers are {}".format(split_list_even_odd(numbers)[1]))

Выполняем нашу программу…

Please provide a list of numbers (separated by space): 1 3 6 34 56 43 67 88 101 102 134
The odd numbers are [1, 3, 43, 67, 101]
The even numbers are [6, 34, 56, 88, 102, 134]

Оно работает!!

Заключение

Если у вас были какие-либо сомнения по поводу извлечения четных и нечетных чисел из списка Python перед чтением этой статьи…

… Теперь у вас есть все необходимые для этого знания.

Если вы чувствуете, что некоторые вещи все еще неясны, вернитесь и самостоятельно перепишите примеры в этом руководстве с нуля.

Практика – лучший способ изучить и запомнить конструкции Python.

Удачного кодирования! : D

Первоначально опубликовано на https://codefather.tech 25 июля 2021 г.

Больше контента на plainenglish.io

Если нужно вывести элементы на четных позициях, то достаточно воспользоваться срезом от начала до конца с шагом 2

l = [0, 1, 2, 3, 4, 5, 6]
l[::2]  # [0, 2, 4, 6]

А если нужно вывести элементы четные по значению, то можно собрать новый массив, отфильтровав исходный

l = [3, 2, 5, 7, 1, 8, 0, 11]
[x for x in l if x % 2 == 0]  # [2, 8, 0]

Здравствуйте, дорогие друзья. Сегодня мы рассмотрим задачу, когда необходимо вывести все чётные и нечётные числа в заданной последовательности. Внимательно смотрим на скриншот:

Исходный код
Исходный код

Для определения чётности и нечётности мы долны использовать for, т.е. цикл с параметром. Теперь запускаем нашу программу и смотрим на результат. Не забудьте предварительно сохранить наш исходный код и нажать клавишу F5.

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

Мы ввели число 10 и видим, что выводятся абсолютно все числа от 1 до 10 и каждое определяется чётное оно или нет.
Вот такую вот быструю и полезную программу мы сегодня с вами написали. На этом у меня на сегодня всё. Также предлагаю подписаться на наш Ютуб-канал
ПиМ [ZveKa], там много интересных видео, всё увидите сами. До новых встреч на просторах Яндекс Дзена.
Также предлагаю посмотреть другие мои статьи по Python:

Как правильно установить язык программирования Python на персональный компьютер

Синтаксис языка программирования Python

Программируем на Python: перевод мер длины друг в друга

Программируем на Python: таблица умножения

Программируем на Python: расчёт коммунальных услуг

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