Динамо не видит число 250…

Главная Форумы Задать вопрос Динамо не видит число 250…

  • В этой теме 4 ответа, 3 участника, последнее обновление 3 года назад сделано vit.
Просмотр 5 сообщений - с 1 по 5 (из 5 всего)
  • Автор
    Сообщения
  • #10625 Score: 0
    Nikolai
    Участник

    Здравствуйте, как такое вообще возможно. На входе в питоновский узел числа, со всеми все норм, акромя числа 250, его питоновский узез не видит, хотя оператор динамо == распознает число 250, как так то?

    #10626 Score: 1
    Nikolai
    Участник

    Я проблему, конечно, решил преобразованием в строку, но блин, что это такое/?

    #10630 Score: 1
    ИваСерж
    Хранитель
    134 pts

    Похоже на говно-код.
    Почему бы не использовать словарь вместо целой обоймы elif?
    Тот же код, но в несколько строк.

    test_list = [15, 250 , 20, 100]
    # create dictionary, pipe_diameter: pipe_index
    index_dict = {15: 1, 20: 2, 25:3, 50:6, 250: 13,}
    # index_list generator. For stable run i converts to inteter with int()
    index_list = [index_dict.get(int(i)) for i in test_list]

    OUT = index_list

    Проблема с типизацией может возникать. Возможно, это баг. Сложно сказать.
    Для уверенности я перевожу в цикле диаметр в инт.
    Итак: для улучшени кода вместо if я использовал словарь, а вместо цикла – генератор.
    Из-за этого улучшилась расширяемость – в словарь можно удобно добавлять новые индексы.
    Значительно улучшилась читаемость.

    #10654 Score: 0
    Nikolai
    Участник

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

    Спасибо за предложение, безусловно читаемость улучшается!

    #10655 Score: 0
    vit
    Участник

    сделайте округление OUT=[round(i) for i in IN[0]]

Просмотр 5 сообщений - с 1 по 5 (из 5 всего)
  • Для ответа в этой теме необходимо авторизоваться.