• Ошибка в Python, как исправить?

    @Animkim
    Питон вокруг меня
    Твой код это говнокод 99 уровня, надеюсь ты это знаешь, первый день прочитай про pep8 и следуй ему.
    Ошибка вот тут i%2 = 0 и далее везде где ты используешь знак присваивания вместо равенства.
    В вопросах код оформляй как код, а не текст иначе многие просто мимо пройдут.
    Ответ написан
    Комментировать
  • Насколько легко трудоустроиться программисту в 40+, 50+ итд лет?

    @Matar
    что то какой то бред написали )
    я пошел в программисты в 37 (!) лет. Причем, сознательно шел на слом своего мозга, ибо до этого 15 лет работал гуманитарием в сфере рекламы и маркетинга.
    И когда я пошел устраиваться на работу, на меня все смотрели не как на прыщавого джуна, а с уважением.
    Возрастных ограничений не увидел вообще, когда менял вторую работу программиста, то оценивался именно опыт как программирования, так и опыт тупо возрастного опыта.
    сейчас я заведую it отделом. справа от меня сидит программист 25 лет, слева 27 лет.
    Причем оба сильнее меня, как спецы. А начальник я. А почему? Потому что опыт )
    вот таки дела, малята )
    Ответ написан
    2 комментария
  • Куда переходить с Ubuntu 14.04?

    @Wexter
    я бы на вашем месте железо проверил, имею пачку десктопов и серверов на 16.04 и проблем не наблюдал.
    Ответ написан
    2 комментария
  • Что лучше применять для парсинга Selenium(ChromeDriver) + BeautifulSoup или Scrappy?

    qlkvg
    @qlkvg
    python backend developer
    Только requests, только хардкор.
    Ответ написан
    Комментировать
  • Как выбрать перекрывающиеся интервалы?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В текущую таблицу добавляете поле-флаг для отметки просмотренных интервалов.
    Создаёте вторую таблицу, куда будут писаться суммированные интервалы.
    Дальше примерно так:
    Выбираете первую немаркированную запись из таблицы, её границы используете как in и out.
    Находите min_in и max_out всех записей, пересекающихся с текущей.
    Eсли min_in != in или max_out != out, то in := min_in, out := max_out и повторяете предыдущий шаг.
    Заносите полученный интервал в таблицу результатов.
    Маркируете все записи в исходной таблице, пересекающиеся с полученной.
    Повторяете алгоритм.
    Ответ написан
    Комментировать
  • Почему в Питоне нельзя складывать строки?

    aRegius
    @aRegius
    Python Enthusiast
    Можно, но это некрасиво/плохо читаемо. Много лишнего "шума": плюсы, кавычки, экранирование, все это вперемешку с переменными, а значит более error prone...

    Судите сами:
    >>> name = "NAME"
    >>> input_path = "INPUT_PATH"
    
    >>> print("\""+name+"\" - ERROR! File not found in \""+input_path+"\"")
    "NAME" - ERROR! File not found in "INPUT_PATH"
    
    # не лучше ли, "мальчики-налево, девочки-направо" ?
    >>> print('"{0}" - ERROR! File not found in "{1}"'.format(name, input_path))
    "NAME" - ERROR! File not found in "INPUT_PATH"


    Плюс ко всему, допустим, вам нужно добавить пусть даже всего одну переменную между словами "File" и "not". Ну, к примеру, пусть еще раз имя ненайденного файла name. В приведенном вами варианте, мы еще больше "устрашим" себя и своих коллег кодом, осознание которого требует нечеловеческой концентрации:
    >>> print("\""+name+"\" - ERROR! File \""+name+"\" not found in \""+input_path+"\"")
    "NAME" - ERROR! File "NAME" not found in "INPUT_PATH"


    В то время как применяя метод format() все, что нам нужно - добавить дополнительную пару curly braces:
    >>> print('"{0}" - ERROR! File "{0}" not found in "{1}"'.format(name, input_path))
    "NAME" - ERROR! File "NAME" not found in "INPUT_PATH"


    Согласитесь, выгода очевидна.
    Ответ написан
    7 комментариев
  • Сплошные php. Как запустить сайт на локальном сервере?

    grabbee
    @grabbee
    Создать БД с правильным названием мало - там структуру таблиц нужно восстановить, и тестовые данные в нее сохранить. Если структуры БД нет - выкинуть и забыть.
    Ответ написан
    2 комментария
  • Как оптимальным образом в Django проверить текст на наличие слов из базы?

    @marazmiki
    Укротитель питонов
    Если абстрагироваться от базы данных, то задача выглядит слегка проще. Считайте, что есть два множества: множество плохих слов и множество слов в тексте. Остаётся определить, пересекаются ли эти множества. Если пересекаются, то как минимум одно плохое слово есть :-)

    >>> a = { 1, 2, 3 }
    >>> b = { 2, 3, 4 }
    >>> c = { 5, 6 }
    >>>
    >>> a & b
    {2, 3}
    >>> a & c
    set()


    Теперь ближе к прикладной задаче. Поскольку множество "плохих слов" у нас хоть и хранится в БД (к слову, модели принято называть в единственном числе — BadWord — а не во множественном, как у Вас), но пока не происходят изменений, его можно считать статичным. Поэтому можно без зазрения совести брать это множество из кеша.

    # utils.py
    from django.core.cache import cache
    
    def get_bad_words():
        return cache.get('bad_words')


    и пересчитывать кеш при создании, редактировании или удалении записей из BadWords. Например, с помощью сигналов:

    # models.py
    def set_bad_words(**kwargs):
        from django.core.cache import cache
        cache.set('bad_words', {w.bword for w in BadWords.objects.all()})
    
    models.signals.post_save.connect(set_bad_words,  sender=BadWords)
    models.signals.post_delete.connect(set_bad_words, sender=BadWords)


    Теперь остаётся только преобразовать входящий текст в множество слов

    И пример использования:
    # utils.py
    
    def get_words_from_text(text_string):
        return set([w for w in text_string.lower().split()])


    и определять, есть ли плохие слова (т.е. пересекаются ли множества):

    # utils.py
    
    def has_bad_words(text_string):
        return bool(get_bad_words() & get_words_from_text(text_string))


    В общем, пространство для рефакторинга и улучшений ещё есть (неплохо бы вычистить из текста пунктуацию, стоп-слова, лишние пробелы, сигналы перенести в apps.py согласно новым правилам application loading, а то и вовсе выкинуть их), но идея, думаю, ясна.
    Ответ написан
    4 комментария
  • Как из двух таблиц в SQL сделать третью по одинаковому столбцу?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ответ написан
    Комментировать
  • Python. Как написать функцию для заполнения матрицы по условию?

    @nirvimel
    Первое правило numpy - НИКАКИХ ЦИКЛОВ!
    from time import time
    import numpy
    from numpy.lib.stride_tricks import as_strided
    
    def fill_matrix_python(width, height):
        i, j = numpy.mgrid[0:height, 0:width]
        return 22. / (i + j + 2)
    
    def fill_matrix_native(width, height):
        array = numpy.arange(2, width + height + 2)
        stride = array.strides[0]
        view_2d = as_strided(array,
                             shape=(width, height),
                             strides=(stride, stride))
        return 22. / view_2d
    
    start_time = time()
    fill_matrix_python(10000, 10000)
    print('Python implementation: Matrix 10000x10000 filled in %.3f seconds' % (time() - start_time))
    
    start_time = time()
    fill_matrix_native(10000, 10000)
    print('Native implementation: Matrix 10000x10000 filled in %.3f seconds' % (time() - start_time))


    Python implementation: Matrix 10000x10000 filled in 3.332 seconds
    Native implementation: Matrix 10000x10000 filled in 0.532 seconds

    Более красивое решение через mgrid под капотом реализовано все-таки через циклы на скрипте (благодарю SkiBY за замечание).
    Менее красивое решение через манипуляцию со страйдами реализовано полностью нативно.
    Ответ написан
    2 комментария
  • Какой одноплатный компьютер с x86 совместимым процессором взять для установки системы видеонаблюдения через USB камеру?

    Jump
    @Jump
    Системный администратор со стажем.
    За 10-15 тыс можно взять Intel NUC
    Память и диск по вкусу.
    Ответ написан
    Комментировать
  • На каком языке будет быстрее парсить?

    sim3x
    @sim3x
    Задержки на сети в разы больше времени парсинга

    Кроме как запускать одновременно парсинг на 100+ сайтов никак "ускорить" не получится

    Для питона scrapy умеет делать такое из коробки
    Ответ написан
    5 комментариев
  • Как избавиться от просадки напряжения при старте электромотора?

    Sly_tom_cat
    @Sly_tom_cat
    .
    Мне кажется тут проблема может быть из-за двух причин:
    1. Потребление реле (оно дает пик при включении ибо тоже индуктивная нагрузка).
    2. Потребление мотора на старте.

    С первым бороться "программно" - не возможно - нужно менять схему - уходить от классических реле в твердотельные (по сути дела полевик с оптронным управлением), или просто полевик ставить.

    Со вторым бороться "программно" - можно - ШИМ, но, на реле - тоже трудно - не те скорости переключения, что обычно требуются для ШИМ.

    Т.е. я бы нашел сначала подходящий силовой полевик (их иногда драйверами называют) или твердотельное реле с приличной скоростью срабатывания. Но твердотельное - это в первую очередь гальваническая развязка, которой с общим блоком просто нет, т.ч. твердотелка - немного избыточно.

    Ну а дальше делать плавный запуск исподльзуя ШИМ.

    + еще надо знать схемотехнику блока - в некоторых дешевых БП вся обратная связь (по всем напряжениям) выстроена по цепи +5В. Это тоже может давать крайне неприятные эффекты при переходном процессе (старте движка).
    Ответ написан
    Комментировать
  • Как избавиться от просадки напряжения при старте электромотора?

    Используйте не реле, а полевой транзистор и ШИМ. Это позволит плавно наращивать ток в двигателе, увеличивая коэф. заполнения ШИМ.
    %D0%BA%D0%BE%D0%BD%D1%81%D0%BF%D0%B5%D0%

    Если ардуина запитана от 12В, то можно немного смягчить симптомы, подключив её
    через диод, а за ним уже конденсатор по питанию ардуины, поближе к самой ардуине... (обведено красным)35781f484aaa40adbcabaf2b6ede7145.JPG

    Так же есть вариант, что у вас ардуина подключена напрямую к обмотке реле и это она уходит в кз при попытке открыть реле :)

    Либо при пуске двигателя возникает мощная наводка, если он близко лежит.

    Используйте ступенчатый запуск на двух реле! Сначала подключать реле с мощным токоограничительным резистором (от того же ВАЗа), потом включать второе реле, которое исключит этот резистор, хотя это уже прошлый век это решение проверенное временем!
    Ответ написан
    Комментировать
  • Как избавиться от просадки напряжения при старте электромотора?

    @n12eq3
    2a4a9272dbe444b2a54801174c3b484b.png
    Подобрать номинал С1 до исчезновения просадок, затем увеличить в 2 раза и оставить
    Подобрать любой удобный VD2 на постоянный прямой ток 1-2А и выше
    Подобрать R1 выводной на мощность 0.125Вт и выше (SMD 1206 и крупнее)
    Ответ написан
    Комментировать
  • Проблема с python - requests?

    Аккаунт andreymahatma -- приватный, т.е. его посты недоступны публично, потому ты и не получаешь данные в ответ.
    Ответ написан
    1 комментарий
  • Какие игровые движки существуют для Python?

    @WorldEn
    На данный момент для Python есть следующие движки на выбор:

    2D:
    - Cocos 2D (сам лично им не пользовался и ничего сказать не могу, но знаю, что русскоязычное сообщество использует этот движок для с++, вместо python)

    - Kivy (это потомок Pygame, о котором напишу ниже. В основном он предназначен для создания приложений под андроид, но 2D игры тоже на нём делают)

    - Собственно PyGame (Это библиотека Python для создания 2D игр. Очень проста в освоении и есть много уроков и книг на английском и русском. Можно создать практически любую 2D игру. Русское сообщество тоже есть. Хорошая книга на русском здесь)

    - Так же есть 2D + 3D движок с внутренним языком программирования, который очень похож на Python. Т.е если знаешь Python, то этот ЯП освоишь максимум за неделю или даже меньше. Godot Engine

    3D:
    - Из 3D движков единственные это Blender Game Engine. Движок прост в освоении и, в принципе, даже не надо знать языка программирования для создания хорошей игры. Однако если знаешь Python, то это большой плюс, так как скрипты для этого движка пишутся именно на этом языке. Хорошая книжка по движку здесь, а здесь перевод. Примеры игр: раз, два.

    - И , конечно же, Panda 3D. Это не конструктор игр, как Blender Game Engine, где ты создаешь игру, не написав строчки кода. Это конкретный игровой движок, где ты с нуля пишешь код на Python используя API этого движка и создаешь 3D игру. Я сейчас сам его осваиваю и у движка есть живое русскоязычное сообщество, где могут подсказать если что. Так же по движку много видео уроков и книг на английском. Вот одна из этих книг- она на английском, но написано всё понятно, что даже я, не зная инглиш, понимаю))))) Примеры игр: раз, два, три.
    Ответ написан
    9 комментариев
  • Парсинг сайта. В какую сторону копать?

    @deliro
    Направьте меня в нужную сторону, плиз ))

    Удали прямо сейчас beautifulsoup и возьми scrapy.
    Ответ написан
    8 комментариев