Member 14517556 Ответов: 2

Самая высокая и самая низкая функция


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

Пример:
high_and_low("1 2 3 4 5") # Возвращение "5 1"
high_and_low("1 2 -3 4 5") # Возвращение "5 -3"

Что я уже пробовал:

def high_and_low(numbers):
    li = numbers.split()
    mx = max(li)
    mn = min(li)
    return str(mx)+" "+str(mn)
print(high_and_low("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6"))


Я получаю 6 -214

2 Ответов

Рейтинг:
16

Patrice T

Цитата:
Я получаю 6 -214

Просто предположение: вы забыли преобразовать каждый элемент li насчитывать.
numbers это строка, после разделения вы получаете список строк. Поскольку вы хотите сравнить целочисленные значения строк, вам нужно скрыть список строк в список целых чисел.
Цитата:
Почему в строке "6" больше других? Как функция max работает со строкой. На мой взгляд, он использует количество символов в строке, но здесь это действительно так.

Отсортированные строки располагаются в том же порядке, что и слова в словаре.
-24 < -52 < 1 < 11 < 15 < 2 < 25< 2614 < 3 < 33 < 4


Member 14517556

Почему в строке "6" больше других? Как функция max работает со строкой. На мой взгляд, он использует количество символов в строке, но здесь это действительно так.

Richard MacCutchan

"6" считается самым высоким, потому что он является самым высоким, когда символы отсортированы в алфавитном порядке.

Рейтинг:
10

mike_j7909

def high_and_low(numbers):
    li =[int(x) for x in list1.split(' ')]
    mx = max(li)
    mn = min(li)
    return str(mx)+" "+str(mn)
print(high_and_low("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6"))