Как найти наибольшее четное число питон

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]

Кодинг-марафон. Задача 5.

Условие: Напишите функцию, которая находит наибольшее четное число в списке. Верните -1, если ничего не найдено. Использовать встроенные функции max() и sorted() — запрещено.

Пример:

largest_even([3, 7, 2, 1, 7, 9, 10, 13]) ➞ 10

Список для задачи: [0, 19, 18973623].

Приводим три варианта решения задачи:

def largest_even(lst):
    res = -1
    for x in lst:
        if not x % 2 and x > res:
            res = x
    return res
def largest_even(r, n=-1):
    if not r: return n
    n = [n, r[0]][not r[0] & 1 and r[0] > n]
    return largest_even(r[1:], n)
def largest_even(lst):
    max=0
    for i in lst:
        if i%2==0 and i>max:
            max=i
    if max==0:
        return -1
    return max

Какое наибольшее четное число?

Необходимо из 3 вводимых натуральных чисел составить наибольшее четное натуральное число.
Программа тестирования говорит, что пройдено только 10 тестов из 50. Что не так?

a, b, c = map(int, input().split())

n1 = max(a, b, c)
n2 = a + b + c - n1
n3 = 0

if a == n1:
    if c % 2 != 0:
        n2 = n2 - c
        n3 = c
    if b % 2 != 0:
        n2 = n2 - b
        n3 = b

if b == n1:
    if a % 2 != 0:
        n2 = n2 - a
        n3 = a
    if c % 2 != 0:
        n2 = n2 - c
        n3 = c

if c == n1:
    if a % 2 != 0:
        n2 = n2 - a
        n3 = a
    if b % 2 != 0:
        n2 = n2 - b
        n3 = b

print(n1 * 100 + n2 + n3 * 10)


  • Вопрос задан

    более трёх лет назад

  • 779 просмотров

Если я правильно понял цель задания то можно сделать так:

s = [23,45,67]
from itertools import chain, combinations
def all_subsets(ss):
    return chain(*map(lambda x: combinations(ss, x), range(1, len(ss)+1)))
variants = max([vv for vv in (sum(v) for v in all_subsets(s)) if vv % 2 == 0])

Если нет, то приложить задания полностью

Пригласить эксперта


  • Показать ещё
    Загружается…

28 мая 2023, в 11:13

1000 руб./за проект

28 мая 2023, в 08:16

5000 руб./за проект

28 мая 2023, в 07:29

1500 руб./за проект

Минуточку внимания

Dimakonuhov17

0 / 0 / 0

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

Сообщений: 21

1

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

12.04.2021, 19:39. Показов 8633. Ответов 18

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


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

Наибольшее чётное число
Вводятся три цифры. Требуется составить из них наибольшее возможное чётное число.

Входные данные

Вводятся три цифры, разделённые пробелом. Гарантируется, что хотя бы одна из них отлична от нуля, и хотя бы одна цифра чётная.

Выходные данные

Вывести одно трёхзначное число (без пробелов). Число не может начинаться с нуля.

Примеры
Ввод
Вывод
1 0 0
100
1 5 8
518

Python
1
2
3
4
5
6
7
8
9
a = int(input())
b = int(input())
c = int(input())
A=[100*a+10*b+c, 100*a+10*c+b, 100*b+10*a+c, 100*b+10*c+a, 100*c+10*a+b, 100*c+10*b+a]
B = []
for i in A:
    if int(i)%2 == 0:
       B.append(i)
print(max(B))

Добавлено через 1 минуту
что не так с моим кодом, подскажите пожалуйста



0



Gdez

Эксперт Python

7258 / 4047 / 1780

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

Сообщений: 6,875

12.04.2021, 19:46

2

Dimakonuhov17, отступы похоже

Python
1
2
3
4
5
6
7
8
9
a = int(input())
b = int(input())
c = int(input())
A=[100*a+10*b+c, 100*a+10*c+b, 100*b+10*a+c, 100*b+10*c+a, 100*c+10*a+b, 100*c+10*b+a]
B = []
for i in A:
    if i%2 == 0:
        B.append(i)
print(max(B))

А если будет 100-значное число, будешь 100 инпутов прописывать и делать список из 100! чисел???



0



iSmokeJC

Am I evil? Yes, I am!

Эксперт PythonЭксперт Java

16254 / 9010 / 2605

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

Сообщений: 20,715

12.04.2021, 19:50

3

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

что не так с моим кодом

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

Вводятся три цифры, разделённые пробелом

Python
1
a, b, c = map(int, input().split()



0



0 / 0 / 0

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

Сообщений: 21

12.04.2021, 19:54

 [ТС]

4

С отступами у меня все нормально, а исправив вход, ничего не поменялось.



0



Am I evil? Yes, I am!

Эксперт PythonЭксперт Java

16254 / 9010 / 2605

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

Сообщений: 20,715

12.04.2021, 20:00

5

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

ничего не поменялось

Чего не поменялось? Можно вопрос внятно задать?
Ошибка выходит, считает неправильно, что?

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

что не так с моим кодом

Убийственный вопрос!



0



0 / 0 / 0

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

Сообщений: 21

12.04.2021, 20:04

 [ТС]

6

Короче, тест. система опять считает, что «Программа выдает ошибку в процессе выполнения»



0



Matrix3007

194 / 160 / 41

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

Сообщений: 828

12.04.2021, 20:36

7

Python
1
2
3
4
5
lst=list(map(int, input().split()))
for i,j in enumerate(lst):
    if j%2-1:
        break
print(*sorted(lst[:i]+lst[i+1:], reverse=1)+[j], sep="")



0



0 / 0 / 0

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

Сообщений: 21

12.04.2021, 21:08

 [ТС]

8

Matrix3007, пишет, что ответ неверный



0



user-ganz

Костыли любой сложности

201 / 146 / 36

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

Сообщений: 843

12.04.2021, 22:03

9

Dimakonuhov17,

Python
1
2
3
4
5
6
7
lst=list(map(str, input().split()))
lst.sort(reverse=True)
for it in '02468':
    if it in lst:
    x=lst.pop(lst.index(it))
    break
print(''.join(lst),x,sep='')



0



Dax

Модератор

Эксперт Python

1353 / 650 / 207

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

Сообщений: 3,054

13.04.2021, 09:41

10

Пойдет?

Python
1
2
3
mlist=list(map(int,input().split()))
print(*mlist)
print(max(list( i for i in mlist if i%2==0)))



0



194 / 160 / 41

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

Сообщений: 828

13.04.2021, 12:55

11

Dimakonuhov17, Мне лень. Сделай то же самое, только ищи не любое четное, а минимальное, и уже его добавляй в конец.



0



0 / 0 / 0

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

Сообщений: 21

13.04.2021, 16:21

 [ТС]

12

Не-а. «Программа выдает неверный ответ». тестировщик(с)



0



Эксперт Python

7258 / 4047 / 1780

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

Сообщений: 6,875

13.04.2021, 16:35

13

Dimakonuhov17, без конкретики (скринов, конкретных ошибочных тестов) бесполезный диалог.
Причина может быть банальной — загрузка не в ту тестсистему (был случай тут — пару дней «бились»; оказалось вместо python тестсистемы решение засовывалось в С++ тестсистему); или требуется написать в виде функции и «вставлять» в готовый код…
Почти все коды дают верные решения — организуй всевозможные варианты с a, b, c — всего то 900 чисел — на выходе по условию задания получишь 184 числа…



1



Matrix3007

194 / 160 / 41

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

Сообщений: 828

13.04.2021, 17:54

14

Python
1
2
3
4
5
6
lst=list(map(int, input().split()))
minx=10
for i,j in enumerate(lst):
    if j%2-1 and j<minx:
        minx,mini=j,i
print(sorted(lst[:mini]+lst[mini+1:], reverse=1)+[minx])

Пробуй.



0



0 / 0 / 0

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

Сообщений: 21

13.04.2021, 18:03

 [ТС]

15

Matrix3007, Программа выводит ответ в неверном формате. то есть я вбил в Питон, он вот так: 8 1 5(я ввел, входные данные)
[5, 1, 8] он вывел. а надо в цельном образце, то есть именно число 518. как программу дочесать, чтобы она именно число выводила, а не список?



0



Matrix3007

194 / 160 / 41

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

Сообщений: 828

13.04.2021, 18:06

16

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

как программу дочесать, чтобы она именно число выводила, а не список?

Если ты не знаешь даже этого, то зачем решаешь такие задачи?

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

print(sorted(lst[:mini]+lst[mini+1:], reverse=1)+[minx])

Python
1
print(*sorted(lst[:mini]+lst[mini+1:], reverse=1)+[minx], sep="")



0



GorodetskiyKP

137 / 95 / 48

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

Сообщений: 234

13.04.2021, 18:20

17

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

Решение

Python
1
2
3
4
5
6
7
numbers = list(map(int, input().split()))
even_numbers = sorted(list(filter(lambda x: x % 2 == 0, numbers)))
odd_numbers = list(filter(lambda x: x % 2 == 1, numbers))
min_even_number = even_numbers.pop(0)
numbers = sorted(list(even_numbers) + list(odd_numbers), reverse=True)
numbers.append(min_even_number)
print(int("".join(map(str, numbers))))



1



Matrix3007

194 / 160 / 41

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

Сообщений: 828

13.04.2021, 18:50

18

GorodetskiyKP,

Python
1
print(*sorted((lst:=list(map(int, input().split())))[:(s:=(m:=min((y,x) for x,y in enumerate(lst) if y%2-1))[1])]+lst[s+1:], reverse=1)+[m[0]], sep="")



0



0 / 0 / 0

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

Сообщений: 21

13.04.2021, 18:57

 [ТС]

19

GorodetskiyKP, спасибо, чел, от души, помог!



0



IT_Exp

Эксперт

87844 / 49110 / 22898

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

Сообщений: 92,604

13.04.2021, 18:57

Помогаю со студенческими работами здесь

Даны три целых числа. Вывести наибольшее четное число, если хотя бы одно такое число есть
Даны три целых числа. Вывести наибольшее четное число, если хотя бы одно такое число есть, в…

Вывести наибольшее четное число
Задача: Даны три целых числа. Вывести наибольшее четное число, если хотя бы одно такое число есть,…

Вывести наибольшее четное число, если хотя бы одно такое число есть, в противном случае сообщить об отсутствии четных
Помогите пожалуйста,вот код программы,но она не работает,вернее работает,но ,когда нажимаешь на…

Найти наибольшее чётное число в массиве.
Напишите функцию, которая находит наибольшее число в массиве nums, которое также является четным….

Вывести на экран наибольшее четное число
Здравствуйте! Не получается сделать программу :Даны 3 целых числа. Вывести на экран наибольшее…

Найти наибольшее четное число в заданном файле
Дан текстовый файл. В этом файле записана последовательность целых цифр, разделенная пробелами….

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

19

Уведомления

  • Начало
  • » Центр помощи
  • » Можно ли это записать проще?

#1 Янв. 24, 2019 21:26:05

Можно ли это записать проще?

РЕБЯТАААА!
Это можно написать как то проще?
———————————————————————————-
Пользователь вводит четыре числа.
Найдите наибольшее четное число среди них.
Если оно не существует, выведите фразу “not found”
———————————————————————————-
ФАЙЛИК ПРИКРЕПИЛ ЕСЛИ ЧТО

  • ———————————————————————————-

    num_1 = int (input (“Введите первое число: ”))
    num_2 = int (input (“Введите второе число: ”))
    num_3 = int (input (“Введите третье число: ”))
    num_4 = int (input (“Введите четвертое число: ”))

    if num_1 % 2 == 0:
    if num_2 % 2 == 0:
    if num_3 % 2 == 0:
    if num_4 % 2 == 0:
    if num_1 > num_2 > num_3 > num_4:
    print (num_1)
    else:
    if num_2 > num_3 > num_4:
    print (num_2)
    else:
    if num_3 > num_4:
    print (num_3)
    else:
    print (num_4)
    else:
    if num_1 > num_2 > nnum_3:
    print (num_1)
    else:
    if num_2 > num_3:
    print (num_2)
    else:
    print (num_3)
    else:
    if num_4 % 2 == 0:
    if num_1 > num_2 > num_4:
    print (num_1)
    else:
    if num_2 > num_4:
    print (num_2)
    else:
    print(num_4)
    else:
    if num_1 > num_2:
    print (num_1)
    else:
    print (num_2)
    else:
    if num_3 % 2 == 0:
    if num_4 % 2 == 0:
    if num_1 > num_3 > num_4:
    print(num_1)
    else:
    if num_3 > num_4:
    print(num_3)
    else:
    print(num_4)
    else:
    if num_1 > num_3:
    print(num_1)
    else:
    print(num_3)
    else:
    if num_4 % 2 == 0:
    if num_1 > num_4:
    print(num_1)
    else:
    print(num_4)
    else:
    print(num_1)
    else:
    if num_2 % 2 == 0:
    if num_3 % 2 == 0:
    if num_4 % 2 == 0:
    if num_2 > num_3 > num_4:
    print(num_2)
    else:
    if num_3 > num_4:
    print(num_3)
    else:
    print(num_4)
    else:
    if num_2 > num_3:
    print(num_2)
    else:
    print(num_3)
    else:
    if num_4 % 2 == 0:
    if num_2 > num_4:
    print(num_2)
    else:
    print(num_4)
    else:
    print(num_2)
    else:
    if num_3 % 2 == 0:
    if num_4 % 2 == 0:
    if num_3 > num_4:
    print(num_3)
    else:
    print(num_4)
    else:
    print(num_3)
    else:
    if num_4 % 2 == 0:
    print(num_4)
    else:
    print(“not found”)

Прикреплённый файлы:
attachment Задача 15. Условные операции.py (2,8 KБ)

Офлайн

  • Пожаловаться

#2 Янв. 24, 2019 22:39:34

Можно ли это записать проще?

Один из способов

 lst_number = [int(input("Введите {} число: ".format(x))) for x in ['первое', 'второе', 'третье', 'четвертое']]
try:
    print(max([y for y in lst_number if not (y % 2)]))
except ValueError:
    print("not found")

Офлайн

  • Пожаловаться

  • Начало
  • » Центр помощи
  • » Можно ли это записать проще?

Понравилась статья? Поделить с друзьями:
  • Как составить перечень трудовых договоров
  • Как найти фокальный параметр эллипса
  • Как найти футболиста по номеру
  • Couldn t load default cfg как исправить
  • Как составить баланс для ооо усн доходы минус расходы