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
12.5k7 золотых знаков18 серебряных знаков48 бронзовых знаков
задан 10 фев 2021 в 8:42
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
ZhiharZhihar
36.8k4 золотых знака25 серебряных знаков65 бронзовых знаков
7
- Вы затираете сформированный вами список новым списком, полученным через
input
. Попробуйте ввести числа через пробел и вы увидите результат:1 2 3 4 5
. Выведутся2
и4
. - В сформированном вами списке нет чётных чисел, поэтому ничего не выведется из этого списка, если вы закомментируете строку с
input
и используете ваш список из кода.
Вот вывод вашего кода, чётных чисел тут просто нет:
Список [7.5, -1.6, 17.0, 1.5, 9, 1, 1]
Количество элементов в списке 7
ответ дан 10 фев 2021 в 9:37
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]
Skip to content
Задача «Четные элементы»
Условие
Выведите все четные элементы списка. При этом используйте цикл for
, перебирающий элементы списка, а не их индексы!
Решение задачи от разработчиков на Python:
Другая реализация задачи на Python:
Смотреть видео — Задача «Четные элементы» решение на Python
Делитесь с друзьями ссылкой на ответ и задавайте вопросы в комментариях! 👇
Related Posts