/
Вопросы и ответы
/
Python
/

Какая функция нужна для нахождения максимума из двух чисел в Python?

Какая функция нужна для нахождения максимума из двух чисел в Python?

4 года назад

Andrey Moshkov

Ответы

1

В нахождении максимального значения из двух (или более) чисел поможет функция max(). Она может принять как несколько чисел, так и итерируемый объект из них состоящий и вернуть наибольшее значение:

1
2
3
4
5
6
7
8
x = max(5, 10)

print(x) # => 5

a = (1, 5, 3, 9)
y = max(a) 

print(y) # => 9

4 года назад

Владимир Устянивский

0

Большее из двух чисел возвращает встроенная функция max():

1
2
3
print(max(7, 12))     # 12
print(max(-3, -8))    # -3
print(max(2.5, 2))    # 2.5

max() принимает любое количество аргументов: max(4, 9, 1) вернёт 9. Меньшее число — min().

Максимум списка

1
2
numbers = [5, 17, 3]
print(max(numbers))  # 17

Для пустого списка max() выдаст ValueError. Значение на этот случай задают через default: max([], default=0).

Без max(): условие

На собеседованиях и в учебных задачах иногда просят обойтись без встроенной функции:

1
2
3
4
def bigger(a, b):
    return a if a > b else b

print(bigger(7, 12))  # 12

Максимум по признаку

Параметр key задаёт, что сравнивать:

1
2
3
4
5
words = ['кот', 'бегемот', 'ёж']
print(max(words, key=len))  # бегемот

users = [{'name': 'Анна', 'age': 25}, {'name': 'Олег', 'age': 31}]
print(max(users, key=lambda u: u['age'])['name'])  # Олег

Строки сравниваются по алфавиту

1
print(max('10', '9'))  # 9

'9' больше '10', потому что строки сравниваются посимвольно, а символ '9' идёт после '1'. Числа из input() сначала переведите в int:

1
2
3
a = int(input())
b = int(input())
print(max(a, b))

Ошибка TypeError: 'int' object is not callable

Значит, где-то выше в коде есть переменная с именем max, и она перекрыла встроенную функцию:

1
2
max = 10
max(3, 5)  # TypeError

Переименуйте переменную, например в max_value.

Встроенные функции разбирают в бесплатном курсе «Основы Python».

10 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845