Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 24, 2018 19:08:44

RatiborMur
Зарегистрирован: 2018-04-15
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна подсказка!

Есть код:

 def insert_sort(A):
    """ сортировка списка А вставками """
    pass
def choice_sort(A):
    """ сортировка списка А выбором """
    pass
def bubble_sort(A):
    """ сортировка списка методом пузырька """
    pass
def test_sort(sort_algoritm):
    print ("Тестируем:", sort_algoritm.__doc__)
    print("testcase #1: ", end="")
    A = [4, 2, 5, 1, 3]
    A_sorted = [1, 2, 3, 4, 5]
    sort_algorithm(A)
    print("Ok" if A == A_sorted else "Fail")    #сравнение списков затратное по времени, требует len(A) операций
    print("testcase #2:", end="")
    A = list(range(10, 20)) + list(range(0, 10))
    A_sorted = list(range(20))
    sort_algorithm(A)
    print("Ok" if A == A_sorted else "Fail")
    print("testcase #3:", end="")
    A = [4, 2, 4, 2, 1]
    A_sorted = [1, 2, 2, 4, 4]
    sort_algorithm(A)
    print("Ok" if A == A_sorted else "Fail")
if __name__ == "__main__":
    test_sort(insert_sort)
    test_sort(choice_sort)
    test_sort(bubble_sort)

Выдает ошибку:
Traceback (most recent call last):
testcase #1: File “CUsers/***/PycharmProjects/Lessons/sort/sort.py”, line 34, in <module>
test_sort(insert_sort)
File “CUsers/***/PycharmProjects/Lessons/sort/sort.py”, line 18, in test_sort
sort_algorithm(A)
NameError: name ‘sort_algorithm’ is not defined

Process finished with exit code 1
При отдельной реализации сортировок все работает нормально, в чем моя ошибка? Не правильно реализую ( if __name__ == “__main__”?

Отредактировано RatiborMur (Авг. 24, 2018 19:09:34)

Офлайн

#2 Авг. 24, 2018 19:15:12

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Нужна подсказка!

NameError: name ‘sort_algorithm’ is not defined
имя sort_algorithm не определено! где у вас в коде я так понимаю функция sort_algorithm?

Офлайн

#3 Авг. 24, 2018 19:29:52

RatiborMur
Зарегистрирован: 2018-04-15
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна подсказка!

Для этого и использовал ( if __name__ == “__main__”: ), чтоб тестирующая функция была общей для всех функций сортировок. Вообщем, учусь по Ютуб лекциям Хирьянова, у него был такой код и проблем при выполнении не было, у меня же интерпретатор выдает такую ошибку. Пришлось реализовывать отдельно, но хотелось бы понять, почему не вышло, как у лектора.

Офлайн

#4 Авг. 24, 2018 21:45:01

AleksandrPavlovich
Зарегистрирован: 2018-08-23
Сообщения: 4
Репутация: +  1  -
Профиль   Отправить e-mail  

Нужна подсказка!

sort_algoritm и sort_algorithm - это разные имена!
Бывает…

Офлайн

#5 Авг. 24, 2018 21:54:10

RatiborMur
Зарегистрирован: 2018-04-15
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна подсказка!

Упс… пора идти рецепт на очки менять… спасибо большое! В реале можно и подзатыльник выписать. Такая элементарщина! Вопрос закрыт.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version