Как найти максимальный четный элемент массива питон

Feelmore

0 / 0 / 0

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

Сообщений: 17

1

Найти максимальный из элементов списка с чётным индексом

27.03.2022, 01:44. Показов 3465. Ответов 10

Метки python (Все метки)


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

Дано :
Получить из пользовательского ввода список элементов через пробел и найти максимальный из элементов списка с чётным индексом

Моё решение:

Python
1
2
3
4
5
6
7
8
a = input('Введите список через пробел: ').split()
i = 0
b = []
for element in a:
    if i % 2 == 0:
        b.append(int(element))
i += 1
print('Максимальный элемент списка с чётным индексом равен: ', max(b))

Всё работает, если пользователь вбивает числа. Но если среди них ввести строку, то возникает ошибка. Как окультурить эту ошибку? Т.е. если пользователь, введёт хоть букву среди элементов списка, то на выводе написать ему что-то типа ‘введите только численные значения’. Я знаю это можно как-то сделать при помощи метода isdigit(). Но вот всю голову сломал, не доходит как Помогите пожалуйста



0



InfiSupaSta

24 / 18 / 7

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

Сообщений: 43

27.03.2022, 05:25

2

Добавить в 5 строку проверку element.isdigit(), увеличение индекса на 7 строке перенести в тело цикла.

Python
1
2
3
4
5
6
7
8
a = input('Введите список через пробел: ').split()
i = 0
b = []
for element in a:
    if i % 2 == 0 and element.isdigit():
        b.append(int(element))
    i += 1
print('Максимальный элемент списка с чётным индексом равен: ', max(b))

Код между 1 и 8 строками можно заменить на одну строку:

Python
1
b = [element for index, element in enumerate(a) if element.isdigit() and index % 2 == 0]



1



Aviz__

2442 / 1898 / 475

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

Сообщений: 9,154

27.03.2022, 10:19

3

Цитата
Сообщение от Feelmore
Посмотреть сообщение

‘введите только численные значения’

молча убирает))

Python
1
2
3
4
5
6
7
def get_only_digits_list(input_str: str) -> list:
    ret_list = []
    for i in input_str.split():
        if i.isdigit():
            ret_list.append(int(i))
    return ret_list
print(get_only_digits_list(input('Введите список через пробел: ')))



0



Пифагор

2169 / 1652 / 840

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

Сообщений: 5,184

27.03.2022, 11:30

4

Такой вариант:

Python
1
2
3
4
5
6
7
while True:
    _input = input('-> ')
    if not _input.replace(' ', '').isdigit():
        print('Вводите цифры и пробелы')
    else:
        l = list(map(int, _input.split()))
        print(max(list(filter(lambda x: x%2==0, l))))



0



Feelmore

0 / 0 / 0

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

Сообщений: 17

27.03.2022, 13:00

 [ТС]

5

Цитата
Сообщение от InfiSupaSta
Посмотреть сообщение

Добавить в 5 строку проверку element.isdigit(), увеличение индекса на 7 строке перенести в тело цикла.

Python
1
2
3
4
5
6
7
8
a = input('Введите список через пробел: ').split()
i = 0
b = []
for element in a:
    if i % 2 == 0 and element.isdigit():
        b.append(int(element))
    i += 1
print('Максимальный элемент списка с чётным индексом равен: ', max(b))

Я наверное невнятно объяснил суть проблемы. Надо чтобы при введении пользователем чего-то кроме цифр, выскакивало сообщение, что это не правильный ввод, надо вводить только числа и пробелы. А в вашем варианте при введении чисел и букв, буквы просто игнорируются и выводит максимальный элемент из чисел.
Если же вводить одни буквы, то вылетает системная ошибка ValueError, а надо бы чтобы вылазило предупреждение, мол введи только числа и пробелы.



0



2169 / 1652 / 840

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

Сообщений: 5,184

27.03.2022, 13:12

6

Миниатюры

Найти максимальный из элементов списка с чётным индексом
 



0



Пифагор

2169 / 1652 / 840

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

Сообщений: 5,184

27.03.2022, 13:37

7

Требуется как-то иначе сделать?

Добавлено через 9 минут
Небольшое изменение на случай, если в списке отсутствуют четные элементы:

Python
1
2
3
4
5
6
7
8
9
10
11
while True:
    _input = input('-> ')
    if not _input.replace(' ', '').isdigit():
        print('Вводите цифры и пробелы')
    else:
        l = list(map(int, _input.split()))
        lst = list(filter(lambda x: x%2==0, l))
        if lst == []:
            print('Четных элементов нет')
        else:
            print(max(lst))

Добавлено через 14 минут

Цитата
Сообщение от Feelmore
Посмотреть сообщение

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

Похоже, Вы не мой вариант тестировали…



1



Feelmore

0 / 0 / 0

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

Сообщений: 17

27.03.2022, 14:01

 [ТС]

8

Цитата
Сообщение от Пифагор
Посмотреть сообщение

Такой вариант:

Python
1
2
3
4
5
6
7
while True:
    _input = input('-> ')
    if not _input.replace(' ', '').isdigit():
        print('Вводите цифры и пробелы')
    else:
        l = list(map(int, _input.split()))
        print(max(list(filter(lambda x: x%2==0, l))))

Ваш код, я так понял, определяет максимальный чётный по счёту элемент. А надо чтобы определялся максимальный элемент с чётным индексом. То есть первый по счёту элемент имеет индекс 0 и это чётный индекс, второй по счёту элемент имеет индекс 1 — это не чётный индекс и т.д.
У вас выдаёт правильным ответом 4, а должно быть 77.
И ещё. У вас бесконечно предлагает пользовательский ввод. Не могли бы вы предложить вариант, где ввод был бы единственным?

Добавлено через 10 минут

Цитата
Сообщение от Пифагор
Посмотреть сообщение

Требуется как-то иначе сделать?

Добавлено через 9 минут
Небольшое изменение на случай, если в списке отсутствуют четные элементы:

Python
1
2
3
4
5
6
7
8
9
10
11
while True:
    _input = input('-> ')
    if not _input.replace(' ', '').isdigit():
        print('Вводите цифры и пробелы')
    else:
        l = list(map(int, _input.split()))
        lst = list(filter(lambda x: x%2==0, l))
        if lst == []:
            print('Четных элементов нет')
        else:
            print(max(lst))

А, теперь до меня дошло, что вы имели ввиду — максимальное чётное число в списке у вас определяет. А надо максимальный элемент из всех элементов имеющих чётный индекс, начиная с 0, где 0 — это чётный индекс. Например, имеем список: [777 4 8 10 24]. Максимальным элементом с чётным индексом здесь будет первый элемент 777, так как у него чётный индекс (0) и число 777 максимальное из всех других с чётным индексом.
Наверное я не качественно поставил условие задачи в начале



0



Пифагор

2169 / 1652 / 840

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

Сообщений: 5,184

27.03.2022, 14:52

9

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

Решение

Так?

Python
1
2
3
4
5
6
7
while True:
    _input = input('-> ')
    if not _input.replace(' ', '').isdigit():
        print('Вводите цифры и пробелы')
    else:
        l = list(map(int, _input.split()))
        print(max(list(filter(lambda x: l.index(x)%2==0, l))))



1



Feelmore

0 / 0 / 0

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

Сообщений: 17

27.03.2022, 16:31

 [ТС]

10

Цитата
Сообщение от Пифагор
Посмотреть сообщение

Так?

Python
1
2
3
4
5
6
7
while True:
    _input = input('-> ')
    if not _input.replace(' ', '').isdigit():
        print('Вводите цифры и пробелы')
    else:
        l = list(map(int, _input.split()))
        print(max(list(filter(lambda x: l.index(x)%2==0, l))))

Да, спасибо. Теперь определяет верно, но как сделать чтобы это было единоразово? То есть, чтобы вывело результат один раз, а если хочешь ещё — заново запускай код

Добавлено через 6 минут
Ну в принципе я доработал. Тупо брейканул

Python
1
2
3
4
5
6
7
8
while True:
    _input = input('-> ')
    if not _input.replace(' ', '').isdigit():
        print('Вводите цифры и пробелы')
    else:
        l = list(map(int, _input.split()))
        print(max(list(filter(lambda x: l.index(x)%2==0, l))))
        break

Спасибо вам большое, уважаемый Пифагор



0



Пифагор

2169 / 1652 / 840

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

Сообщений: 5,184

27.03.2022, 16:45

11

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

Решение

Цитата
Сообщение от Feelmore
Посмотреть сообщение

Да, спасибо. Теперь определяет верно, но как сделать чтобы это было единоразово?

Как вариант, можно не единоразово, с выходом из цикла по команде:

Python
1
2
3
4
5
6
7
8
9
10
while True:
    _input = input('-> ')
    if _input == 'exit':
        print('Пока')
        break
    elif not _input.replace(' ', '').isdigit():
        print('Вводите цифры и пробелы')
    else:
        l = list(map(int, _input.split()))
        print(max(list(filter(lambda x: l.index(x)%2==0, l))))



1



Решение на python задач с номером 25 егэ по информатике на поиск максимального элемента массива

В задачах с номером 25 егэ по информатике на поиск максимального элемента необходимо организовать ввод массива с клавиатуры, найти максимальный элемент массива, удовлетворяющий определенному условию. Разберем пример программы на python, которая ищет максимальный четный и максимальный нечетный элемент массива.
Код на Python для ввода с клавиатуры массива заданного размера. Подробно о работе с массивами в Python
a = []
n=10
for i in range(0, n):
    a.append(int(input()))

Для максимального четного и нечетного элемента введем переменные и сначал присвоим им занечния первого элемента массива

maxc=a[0]
maxn=a[0]
В цикле for переберём все элементы массива и с помощью оператора условия в python if
сравним каждый нечетный элемент массива с текущим значением максимума, если этот элемент будет больше, то текущему максимуму присвоим значение этого элемента массива. 
Чтобы проверить, является ли переменная четной, в условии нужно использовать выражение
переменная%2==0
Чтобы проверить, является ли переменная нечетной, в условии нужно использовать выражение
переменная%2!=0
Чтобы одновременно выполнялись оба условия, в условии if необходимо использовать логическую операцию and Подробно об условиях If в python
for i in range(0, n):
    if a[i]%2==0 and a[i]>maxc:
       maxc=a[i] 
    if a[i]%2!=0 and a[i]>maxn:
       maxn=a[i]

Полная программа на Python, которая ищет максимальный четный и нечетный элемент массива
a = []
n=10
for i in range(0, n):
    a.append(int(input()))
maxc=a[0]
maxn=a[0]
for i in range(0, n):
    if a[i]%2==0 and a[i]>maxc:
       maxc=a[i] 
    if a[i]%2!=0 and a[i]>maxn:
       maxn=a[i]
print(‘максимальный четный элемент’,maxc)
print(‘максимальный нечетный элемент’,maxn)
Разберем решение на python задачи с номером 25 егэ по информатике на поиск максимального элемента массива.
Дан целочисленный массив из 10 элементов. Элементы массива могут принимать целые значения от 0 до 10000 включительно Необходимо написать программу, которая позволяет найти и вывести максимальное значение среди двухзначных элементов массива, делящихся на 7. Если в исходном массиве нет элемента, значение которого является трёхзначным числом и при этом кратно 7, то вывести сообщение «Не найдено».

Организуем ввод массива с клавиатуры в python
a = []
n=10
for i in range(0, n):
    a.append(int(input()))
max=1

Введем переменную max в которую будем записывать максимальное значение двузначных элементов массива. присвоим ей в начале программы значение 1. Если элементы удовлетворяющие нужному нам условию не будут найдены, то значение переменной max останется равным 1, это будет говорить о том что элементы не найдены
В цикле for перебираем все элементы массива и ищем максимум среди двузначных чисел 
Двузначные элементы лежат в диапазоне от 10 до 99. Чтобы элемент был двузначным и делился на 7 в операторе условия необходимо, чтобы выполнялось сразу три условия одновременно 
a[i]>9, a[i]<100, a[i]%7==0
Чтобы выполнялись все три условия необходимо в операторе условия If использовать логическую операцию and
for i in range(0, n):
    if a[i]>9 and a[i]<100 and a[i]%7==0:
       max=a[i]

В конце программы  производится проверка найден ли хотя бы один элемент удовлетворяющий условию задачи, если элементы не найдены то выводится сообщение элементы не найдены
if max==1:
    print(‘элементы не найдены’)
else:
    print(‘максимальный элемент ‘, max)

Полная программа на python для поиска максимального двузначного элемента массива кратного 7
a = []
n=10
for i in range(0, n):
    a.append(int(input()))
max=1
for i in range(0, n):
    if a[i]>9 and a[i]<100 and a[i]%7==0 and a[i]>max:
       max=a[i] 
if max==1:
    print(‘элементы не найдены’)
else:
    print(‘максимальный элемент ‘, max)

Перейти к курсу python

Полезно почитать по теме решение на python задач с номером 25 егэ по информатике на тему массивы

Решение задач на python на массивы с накопителем
Решение задач на python на массивы на пары элементов массива

Поделиться:

Комментарии ()

Нет комментариев. Ваш будет первым!

Python задача. Найдите наибольший из элементов массива с четными индексами

Python задачи

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

Алгоритм решения задачи на python

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

Код для нахождения наибольшего чётного элемента массива

from random import random

N = 10
arr = [0] * N
for i in range(N):
arr[i] = int(random() * 100)
print(arr)
m = 0
for i in range(2,N,2):
if arr[i] > arr[m]:
m = i
print(‘Индкс элемента: ‘,m,’-‘,’Значение элемента массива: ‘, arr[m])

Код для нахождения наибольшего чётного элемента массива

Python задачи
Все задачи на python

Репост статьи

23 декабря 2022 г.

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



Комментарии

Ваш комментарий будет первым !

Напиши программу, которая принимает натуральное число n, а затем n чисел от 1 до 100. выведи максимальное из них, которое заканчивается на 1. если такого числа нет, напечатай «нет».

Pascal задача.Даны натуральные числа n, m. Получите сумму m последних цифр числа n.

You can obtain the Highest Even value From your mentioned tuple not list by using filter() and lambda Expression.

Highest Even Element in The Tuple

Code Syntax

def highest_even(*tuple):
    lis = filter(lambda x: x % 2 == 0, tuple)
    return print(f"your maximum even number is: {max(lis)}")

highest_even(1,2,3,4,5,6,7,8,9,10,11,12,111,222,444,555)

Output

your maximum even number is: 444

[Program finished]

Sorting Depending on Highest Even Element

Code Syntax

def highest_even_list(*tuple):
    lis = sorted(filter(lambda x: x % 2 == 0, tuple), reverse=True)
    return print(f"Sorted List depending on The highest Even Elements:n{lis}")
    
highest_even_list(1,2,3,4,5,6,7,8,9,10,11,12,111,222,444,555)

Output

Sorted List depending on The highest Even Elements:
[444, 222, 12, 10, 8, 6, 4, 2]

[Program finished]

Using Kwargs for Reversing

You can also decide if you want to sort it ascending or descending using **kwargs

Code Syntax

def highest_even_list(*tuple, **kwargs):
    lis = sorted(filter(lambda x: x % 2 == 0, tuple), **kwargs)
    return print(f"Sorted List depending on The highest Even Elements:n{lis}")
    
highest_even_list(1,2,3,4,5,6,7,8,9,10,11,12,111,222,444,555, reverse=True)

Output

Sorted List depending on The highest Even Elements:
[444, 222, 12, 10, 8, 6, 4, 2]

[Program finished]

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

Максимальный из элементов массива с четными индексами

Просмотров 4.1к. Обновлено 15 октября 2021

В массиве найти максимальный элемент с четным индексом.

Другая формулировка задачи: среди элементов массива с четными индексами, найти тот, который имеет максимальное значение.

В различных языках программирования индексация элементов выполняется по-разному. В одних первый элемент имеет индекс 1 (например, в Паскале и КуМире), в других — 0 (Python, C, Basic).

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

Для поиска максимума только среди четных (или среди нечетных) индексов необходимо при переборе массива в цикле использовать шаг, равный 2.

Предположим, что первый элемент с четным индексом и есть максимальный. Присвоим его индекс переменной max. Перебор начнем с индекса i = max + 2 до конца массива (N).

В цикле будем сравнивать значение очередного элемента со значением элемента по индексу max. Если текущий элемент больше, то запишем его индекс в max.

Pascal


const N = 10;
var
a: array[1..N] of integer;
i, max: byte;

begin
randomize;
for i:=1 to N do a[i]:=random(100);
for i:=1 to N do write(a[i]:3);
writeln;
max := 2;
i := 4;
while i <= N do begin
if a[i] > a[max] then
max := i;
i := i + 2;
end;
writeln('№ ',max,' = ',a[max]);
end.



28 45 48 10 1 85 47 53 32 36
№ 6 = 85

В языке Pascal цикл for не имеет шага, поэтому при решении данной задачи используется цикл while, в теле которого счетчик i увеличивается на 2.

Задачу можно решить через цикл for, предусмотрев в его теле проверку индекса элемента на четность (например так: if odd(i) = false then … ).

Язык Си


#include
#define N 10

main() {
int a[N];
int i, max;
for (i=0; i

printf("%3d", i);
}
printf("n");
srand(time(NULL));
for (i=0; i a[i] = rand() % 100;
printf("%3d", a[i]);
}
printf("n");

max = 0;
for (i=2; i

if (a[i] > a[max]) max = i;
printf("%d: %dn",max,a[max]);
}



0 1 2 3 4 5 6 7 8 9
37 81 23 91 66 36 59 6 25 57
4: 66

Python

максимальный элемент с четным индексом Python


from random import random
N = 10
arr = [0] * N
for i in range(N):
arr[i] = int(random() * 100)
print(arr)
m = 0
for i in range(2,N,2):
if arr[i] > arr[m]:
m = i
print(m,'-',arr[m])



[42, 25, 94, 79, 86, 51, 99, 70, 74, 25]
6 - 99

КуМир


алг макс с чет индексами
нач
цел N = 10
цел таб arr[1:N]
цел i,m
нц для i от 1 до N
arr[i] := irand(10,99)
вывод arr[i]:3
кц
вывод нс

m := 2
нц для i от 4 до N шаг 2
если arr[i] > arr[m] то
m := i
все
кц
вывод m,'-', arr[m]
кон



69 30 80 54 55 82 64 85 34 77
8-85

Basic-256


N = 10
dim arr(N)
for i=0 to N-1
arr[i] = int(rand*100)
print arr[i] + " ";
next i
print

m = 0
for i=2 to N-1 step 2
if arr[i] > arr[m] then
m = i
endif
next i
print m+"-"+arr[m]



49 12 1 37 96 47 70 1 5 66
4-96

Понравилась статья? Поделить с друзьями:
  • Госуслуги личный кабинет как найти заявление
  • Как найти длину стороны если известны точки
  • Как девушке найти своего папика
  • Как найти код для магнитолы рено дастер
  • Как найти на странице firefox