Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.07.2021, 14:00   #1
VeryStupidPerson
Пользователь
 
Аватар для VeryStupidPerson
 
Регистрация: 20.07.2020
Сообщений: 69
По умолчанию Неправильно работает программа. Срабатывание функции из середины.

Вот код:
Код:
circuit = [{"P": "+", "R1": "+"}, {"R1": "-", "R2": "+", "D1": "+"}, 
           {"D1": "-", "R4": "+"}, {"P": "-", "R3": "-"}, 
           {"R3": "+", "R2": "-", "D2": "-"}, {"D2": "+", "R4": "-"}]

def second_law_circuit(circuit):
    deleted_objects = []
    ways = []
    keys = list(circuit[0].keys())
    base_element = keys[0]
    
    element = base_element
    way = [base_element]
    while True:
        for i in circuit:
            keys = list(i.keys())
            if element in keys:
                print("keys:", keys, "element:", element)
                keys.remove(element)
                for j in keys:
                    print("j:", j)
                    print("deleted_objects:", deleted_objects)
                    if not(j in deleted_objects):
                        deleted_objects.append(j)
                        element = j
                        print("way:", way)
                        break
    

second_law_circuit(circuit)
Я пытаюсь написать функцию, которая должна находить замкнутые контуры на электрической схеме, заданной узлами. Вроде бы всё довольно просто и понятно, но функция себя ведёт как-то неадекватно.
Очевидно, что вывод должен начинаться так:
keys: ['P', 'R1'] element: P
j: R1
deleted_objects: []

и т.д.
Но у меня всё выглядит так:
j: R1
deleted_objects: ['R1', 'D1', 'R4', 'D2', 'R2', 'R3', 'P']
keys: ['P', 'R3'] element: P

То есть, каким-то образом код начинает выполнятся примерно с шага for j in keys:, притом deleted_objects уже заполнен. Как это может происходить???
Объясните пожалуйста, что у меня не так?
П.С. Я знаю, что код не дописан, но пока я даже не получаю нужного результата от уже написанного кода, и не понимаю почему.
---------------------------------------------------
Нич-чего не понимаю!
Или что-то случилось, или… одно из двух!
VeryStupidPerson вне форума Ответить с цитированием
Старый 19.07.2021, 16:37   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Возможно, вы запускаете другой код. У меня вывод совпадает с вашим очевидным.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 19.07.2021, 20:13   #3
VeryStupidPerson
Пользователь
 
Аватар для VeryStupidPerson
 
Регистрация: 20.07.2020
Сообщений: 69
По умолчанию

Да, код правильный, уже выяснил. Онлайн интерпретаторы не хранят весь вывод. Поэтому в то время, когда я прерывал выполнение кода, уже был стёрт вывод в начале.
---------------------------------------------------
Нич-чего не понимаю!
Или что-то случилось, или… одно из двух!
VeryStupidPerson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа неправильно работает FsGaCh Python 1 30.03.2020 16:17
Неправильно работает программа. Evgeny_L Общие вопросы C/C++ 0 09.11.2018 22:56
Программа неправильно работает HaKeRR Помощь студентам 1 05.12.2014 23:51
Неправильно работает программа (С#) julia9311 Помощь студентам 0 01.12.2014 02:10
Программа работает неправильно. Настюня Помощь студентам 2 16.06.2012 18:34