Как создать функцию в Python, чтобы определить, отсортирован ли список или нет? - PullRequest
0 голосов
/ 27 октября 2019

Меня просят проверить, отсортирован ли список с использованием функции, но у меня возникают проблемы с определением параметра (lst) в моей функции без использования функции ввода. Он говорит, что lst не определен, но я не уверен, как изменить это без использования функции ввода

def is_sorted(lst):
    lst  = []
    flag = 0
    lst1 = lst[:]
    lst1.sort()
    if (lst1 == lst):
        flag = 1
    if (flag) :
        return "True"
    else:
        return "False"

print (is_sorted(lst))

Ошибка в том, что lst не определен

Ответы [ 2 ]

1 голос
/ 27 октября 2019

Чтобы понять ошибку, нужно понять различие между параметрами и аргументами функции.

Полезные материалы:

Глоссарий Python: Параметр , Аргумент

FAQ по Python: В чем разница междуаргументы и параметры

1 голос
/ 27 октября 2019

В тот момент, когда вы позвонили lst в первый раз (в строке print (is_sorted(lst))), вы фактически не дали lst значение. Перед печатью () вам нужно lst = [1,2,3] (или что-то еще).

Однако вы, возможно, обдумали эту функцию. Я добавил упрощенную версию, использующую функцию Python sorted в качестве компаратора.

def is_sorted(lst):
    if (lst == sorted(lst)) or (lst == sorted(lst, reverse = True)):
        return "True"
    else:
        return "False"

lst = [3,1,2]
print (is_sorted(lst))
lst = [1,2,3]
print (is_sorted(lst))
lst = [3,2,1]
print (is_sorted(lst))

ВЫХОД:

False
True
True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...