Проверка на возрастание или убывание
На этом этапе вы научитесь проверять, отсортирован ли список в порядке возрастания или убывания. Это распространенная задача во многих сценариях программирования, таких как валидация данных и проектирование алгоритмов.
Чтобы определить, отсортирован ли список, вы можете пройти по списку и сравнить соседние элементы. Если каждый элемент меньше или равен следующему элементу, то список отсортирован в порядке возрастания. Если каждый элемент больше или равен следующему элементу, то список отсортирован в порядке убывания.
Начнем с создания Python-скрипта с именем check_order.py
в директории ~/project
с использованием редактора VS Code.
Вот код для проверки, отсортирован ли список в порядке возрастания:
def is_ascending(lst):
for i in range(len(lst) - 1):
if lst[i] > lst[i + 1]:
return False
return True
numbers = [1, 2, 3, 4, 5]
print(is_ascending(numbers))
numbers = [1, 3, 2, 4, 5]
print(is_ascending(numbers))
Сохраните приведенный выше код в файле check_order.py
. Теперь запустите скрипт с помощью следующей команды:
python ~/project/check_order.py
Вы должны увидеть следующий вывод:
True
False
Первый список [1, 2, 3, 4, 5]
отсортирован в порядке возрастания, поэтому функция возвращает True
. Второй список [1, 3, 2, 4, 5]
не отсортирован в порядке возрастания, поэтому функция возвращает False
.
Теперь добавим код для проверки, отсортирован ли список в порядке убывания:
def is_descending(lst):
for i in range(len(lst) - 1):
if lst[i] < lst[i + 1]:
return False
return True
numbers = [5, 4, 3, 2, 1]
print(is_descending(numbers))
numbers = [5, 2, 3, 2, 1]
print(is_descending(numbers))
Добавьте приведенный выше код в файл check_order.py
. Полностью файл check_order.py
должен выглядеть следующим образом:
def is_ascending(lst):
for i in range(len(lst) - 1):
if lst[i] > lst[i + 1]:
return False
return True
def is_descending(lst):
for i in range(len(lst) - 1):
if lst[i] < lst[i + 1]:
return False
return True
numbers = [1, 2, 3, 4, 5]
print(is_ascending(numbers))
numbers = [1, 3, 2, 4, 5]
print(is_ascending(numbers))
numbers = [5, 4, 3, 2, 1]
print(is_descending(numbers))
numbers = [5, 2, 3, 2, 1]
print(is_descending(numbers))
Запустите скрипт снова:
python ~/project/check_order.py
Вы должны увидеть следующий вывод:
True
False
True
False
Список [5, 4, 3, 2, 1]
отсортирован в порядке убывания, поэтому функция возвращает True
. Список [5, 2, 3, 2, 1]
не отсортирован в порядке убывания, поэтому функция возвращает False
.
В этом упражнении показано, как проверить, отсортирован ли список в порядке возрастания или убывания с использованием Python.