Задать вопрос
  • Почему Uncaught ReferenceError: dropdown is not defined at HTMLLIElement.onclick?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Причем здесь передача event?
    В ошибке прямым текстом написано: Я не знаю ни про какую функцию dropdown
    Если хотите использовать ее в html, то функцию следует объявлять в глобальном контексте.
    Например так
    window.dropdown = function(event) {
    }
    Ответ написан
    3 комментария
  • Что именно имел ввиду Линус Торвальдс?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Плохие программисты думают о коде. Хорошие программисты думают о структурах данных и их взаимосвязях», — Линус Торвальдс


    Он имел ввиду, что хорошие программисты думают над архитектурой программы, как в ней все будет взаимосвязано. От архитектуры критично зависит, как эта программа будет работать в целом, масштабироваться, поддерживаться, сочетаться с другими частями.
    В общем архитектурный взгляд отличает хорошего программиста от плохого, опытного от неопытного.
    Ответ написан
    Комментировать
  • Что именно имел ввиду Линус Торвальдс?

    Deita
    @Deita
    Плохие программисты думают о коде. Хорошие программисты думают о структурах данных и их взаимосвязях», — Линус Торвальдс

    Убеждения Торвальдса изначально неверные. Его учения основываются на том, что код надо писать для машины а не для людей. Хотя, сам любит писать на Си а не языках ассемблера изначально. Если бы он следовал своим убеждениям, то всё писал бы на языках ассемблера. Чего же он выбрал ЧПЯ и агитрирует смотреть не на удобство чтения кода, а в сторону оптимизации. То что он имел ввиду мало кого по сути интересует, потому что он сам не понимает что он порой имеет ввиду. Но иногда для когото он конечно же объект для изучения, или у некоторых идол что ещё хуже.
    Ответ написан
    Комментировать
  • Что значит this.words[word]?

    Stalker_RED
    @Stalker_RED
    Отложите пока изучение классов. Разберитесть что такое объекты, что за ключи, и как добавлять и читать значения используя эти ключи.
    Ответ написан
    Комментировать
  • Если заменить условный оператора полиморфизмом в чём суть?

    Stalker_RED
    @Stalker_RED
    Суть в том, что ООП - это подход для того, чтобы уменьшить сложность СЛОЖНЫХ программ.
    Поэтому когда вы берете простой пример с тремя птичками или "cat says meow, doggy says bark", то разница не видна. В особо тяжелых случаях ООП код будет даже казаться более сложным, чем обычный if или switch.

    Представьте себе код какой-нибудь игры, масштаба warcraft, например. Там где есть несколько десятков разновидностей юнитов - всякие эльфы, орки, люди, палладины, лучники, снайперы, драконы, катапульты...
    Все они основаны на одном классе Unit, у всех есть много общего кода - методы получения координат, получение урона, отображение хелсбара, команды типа "держать позицию", "патрулировать" "атаковать"...
    При этом есть и различия в поведении - разная скорость, разные показатели урона, здоровья, брони, размера. Даже алгоритмы поиска пути могут отличаться, т.к. часть юнитов могут пройти в узком проходе, другие не могут, а кто-то вообще может летать,

    И если написать это на ООП, то у вас будет класс Unit с общими методами, и несколько десятков классов
    Paladin extends Unit
    GoblinTechies extends Unit
    GoldenDragon extends Unit
    в каждом из которых учтены особенности конкретного типа юнитов.

    А если без ООП, то у вас остаются условные операторы. Десятки условий для здоровья, еще десятки для брони, еще десятки для скорости, и в итоге каша такого размера и сложности, что работать с этим в какой-то момент станет невыносимо.
    Ответ написан
    4 комментария
  • Как перейти с Python Django на Go?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Читать учебники и документацию, практиковаться, гуглить. Всë, как с любым другим языком, Go не особенный.
    Ответ написан
    1 комментарий
  • Эффективно ли хранить массивы в виде объекта?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Храните просто и массив, и объект (а лучше - Map), в котором id будет сопоставлен индексу в массиве. Тогда вы, потратив немного памяти, получите плюсы обеих структур данных.

    На вопрос "убьёт ли это производительность" можно получить ответ очень легко: запрофилировать вариант до и после и сравнить. В общем случае на него ответить просто невозможно - откуда мы знаем, какие конкретно вы будете использовать алгортимы и какие у вас вообще интерфейсы. По сути вопрос тогда сводится к "какая разница между массивом и объектом", а на него ответ даётся примерно на седьмой странице любого учебника.
    Ответ написан
    5 комментариев
  • Как узнать сколько может быть исходов событий?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Пока что выходит 2^7
    На каждой из 7 позиций - либо 0, либо не ноль
    Ответ написан
    1 комментарий
  • С чего начать путь в математике?

    Griboks
    @Griboks
    Вся литература есть в государственной программу обучения. Вам просто надо найти школьную + вузовскую программу по интересующему направлению.
    Ответ написан
    Комментировать
  • Как создать список на два элемента с заполнением None?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну если исходит из того что вы показываете как вам хотелось бы видеть ваш testList
    то вот так сработает
    from itertools import zip_longest
    print(list(zip(*zip_longest(*testList, fillvalue=None))))
    Ответ написан
    5 комментариев
  • Как в pandas искать по двум фразам и более?

    Maksim_64
    @Maksim_64
    Data Analyst
    И так вы создаете фрейм из csv файла, затем присваиваете имена колонкам. Это первое место распечатайте фрейм и посмотрите что выглядит так как вы ожидаете.

    Затем исходя из вашего кода вы хотите ВЫБРАТЬ подсет данных по критерию наличия в поле колонки name подстроки 'i3' или 'oem'. То есть если любая из этих подстрок находится в поле колонки name вы выбираете весь этот ряд.

    И так код ваш в принципе верный, если задача это та которую я указал. Вы конечно можете импортировать re, и добавить параметр, flags=re.IGNORECASE. Но в целом на сколько я помню нюансы разницы между case=False нет работать должно и так и так.

    https://pandas.pydata.org/docs/reference/api/panda... вот ссылка на документацию (возможно вы ее открывали), там есть пример на поиск одной или более подстрок, и он естественно работает (но вы все так и сделали).

    Подумайте эту ли задачу вы решаете, может другую, и приходит ли фрейм в том виде в котором вы ожидаете.

    df[df.name.str.contains('i3|oem', regex=True, case=False)])

    Вот это ваш код выберет все строки у которых в колонке name поле содержит подстроку 'i3' ИЛИ 'oem' и не важно в каком регистре (нижнем или верхнем).
    вот слепил игрушечный маленький фрейм
    df = pd.DataFrame({
        'name':['23i3f','dOemf','25','s2f5','df5'],
        'amount':[1,2,3,4,5]
    })
    
    print(df[df.name.str.contains('i3|oem',regex=True,flags=re.IGNORECASE)])

    И он работат, как и ожидается.
    Ответ написан
    1 комментарий
  • В чем соль рефакторинга?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Есть приложение. Простое. Оно начинает усложняться. Ты его дописываешь, допиливаешь. Проходит год-два, у тебя уже комбайн.

    Если сесть и подумать над всеми фичами которые в приложении есть сейчас, записать все реквайрнмнеты и например начать писать приложение, которое умеет это все делать с нуля, скорее всего новое приложение будет кардинально отличаться по архитектуре.

    Рефакторинг - это преесмотр на разных уровнях твоего приложения, чтобы изменить его структуру, его подходы к чему-либо, учитывая все прошедшие изменения в приложении или платформах вокруг.
    Ответ написан
    Комментировать
  • Программирование и математика тесно связаны?

    @dmshar
    А откуда вы взяли список? Просто это очень малая часть того, что должны знать те, кто хотят себя называть специалистом по Data Science. Нет, конечно если под этим терминам понимать вызов методов fit() и predict() - тогда конечно, без знаний математики можно и обойтись. Это как есть фельдшер, а есть врач. Есть младший кодер, вызывающий указанную функцию, а есть тот, кто сам может подобрать метод а может - и усовершенствовать его. А кем быть - уж вам решать.
    6411ccaa240ed514912408.png
    Меня больше смущает наметившийся торг "а надо-ли учить математику или алгоритмы, а чего-нибудь кроме синтаксиса языка надо знать или так прокатит, а то я в математике не силен". Если что-то "не заходит" - то зачем себя напрягать? Есть куча профессий, где без всего этого можно обойтись. Когда найдете что-то что окажется действительно вашим - таких торгов не возникнет, а удовольствия в конечном итоге получите гораздо больше.
    Ответ написан
    2 комментария
  • Как записать Словарь в CSV по СТОЛБЦАМ в Python?

    Maksim_64
    @Maksim_64
    Data Analyst
    в модуле csv есть класс DictWriter.
    Ну я бы использовал pandas потому что проще. Из той структуры данных что у вас есть легко создать dataframe и писать куда захочется хоть в csv, хоть в базу, хоть в excel и т.д.
    предварительно установив pandas
    import pandas as pd
    df = pd.DataFrame(data)
    df.to_csv('file.csv')

    Плюс с этим фреймом можно работать какого только функционала для него нет. И писать куда угодно удобно. И там параметров записи сколько хочешь в методе (to_csv), отрегулировать легко.
    Ответ написан
  • Какую литературу посоветуете по паттернам проектирования?

    black1277
    @black1277
    Вольный стрелок
    Швец А. Погружение в паттерны проектирования (2018) - современное продолжение темы банды четырех с примерами на разных языках.
    The Clean Architecture - by Robert C. Martin (Uncle Bob) - но это не совсем новенькое
    Ответ написан
    3 комментария
  • Как обойти ограничения при парсинге onoz?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    time.sleep(1.5)
    меняешь на
    time.sleep(random(8,21))
    Ответ написан
    1 комментарий
  • Как в python создать interface?

    Vindicar
    @Vindicar
    RTFM!
    typing.Protocol играет роль интерфейса, с той поправкой, что наследоваться от него потом необязательно - главное, чтобы набор полей/методов соответствовал.

    abc.ABC - это именно абстрактный класс, он требует наследование от себя для соответствия, и часто предполагает наличие какой-то частичной реализации функциональности.

    В отличие от него, typing.Protocol обычно применяется только для описания контракта класса, но не для частичной реализации. Так как он не требует наследования, он хорошо подходит для описания структуры объекты, который мы ожидаем на входе - без жётской привязки этого объекта к нашей иерархии классов.

    "Обычно", потому что и то, и то можно использовать "не по назначению".
    Ответ написан
    9 комментариев
  • Как в python создать interface?

    fenrir1121
    @fenrir1121
    Начни с документации
    Смотря о каком определении интерфейса речь. Если речь о формальных интерфейсах, для питона явный способ это сделать это использовать абстрактый базовый класс ABC.
    Применительно к вашему случае я бы предложил посмотреть на построители классов данных, например NamedTuple и dataclass
    Ответ написан
    2 комментария
  • Как в python вывести график на основе данных?

    MrShandy
    @MrShandy
    Python
    Ну вот раз в N недель/дней/часов парсишь цену, заносишь время и цену в базу данных, а уже потом рисуешь график
    Вот, например, статья на хабре https://habr.com/ru/post/468295/
    Ответ написан
    Комментировать
  • Новый ПК, намертво зависает при любой нагрузке. В чём проблема?

    Adler_lug
    @Adler_lug
    БП очень врядли, особенно учитывая, что на мемтесте проблемы. В этот момент видеокарта почти не используется и почти ничего не потребляет.
    Я бы смотрел в сторону памяти, особенно учитывая, что это Corsair (много негатива за них слышал). Может битая, а может какие-то настройки частоты, вольтажа, профиля XMP или разгона не подходят.
    Ответ написан
    6 комментариев