• Как исправить это регулярное выражение?

    @abcd0x00
    Используй lxml.html для разбора html.

    >>> import lxml.html
    >>> 
    >>> s = """<input type="hidden" name="Sample" value="0">"""
    >>> 
    >>> node = lxml.html.fromstring(s)
    >>> node
    <InputElement b74340ec name='Sample' type='hidden'>
    >>> node.attrib
    {'type': 'hidden', 'name': 'Sample', 'value': '0'}
    >>>


    Если же собрался использовать регулярки, то надо сделать в два этапа: 1) сначала выделить все нужные теги, которые будешь разбирать; 2) затем из выбранных тегов уже выбирать атрибуты. Возможно, понадобятся две регулярки (одна для выбора тегов, другая для выбора атрибутов), но это неважно. Главное, что у тебя разные задачи не должны сливаться в одной регулярке, так как это не только её усложнит (невозможно будет читать), но и приведёт к невидимым ошибкам, из-за которых оно в каких-то случаях будет неправильно разбираться и ты это сразу не заметишь.
    Ответ написан
    1 комментарий
  • Как узнать находится ли число, рядом с другим определенным числом в матрице?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    1. У матрицы 16x16 центр находится между ячейками, туда невозможно записать число.
    2. Определитесь, что значит "рядом". Если это только четыре соседних клетки, то значит |i1-i2|+|j1-j2| = 1, если допустимы диагонали, то |i1-i2|+|j1-j2| > 0 && |i1-i2| <= 1 && |j1-j2| <= 1
    Ответ написан
    Комментировать
  • Как узнать находится ли число, рядом с другим определенным числом в матрице?

    @Nwton
    x - столбец
    y - строка

    Вы ставите 1 не в сферическом центре, а в ячейке с индексом 3; 3
    Далее генерируете рандомный индекс, например, 4; 3
    Если вы знаете оба индекса, в чем сложность просто их сравнить?

    Навскидку, если |x2 - x1| < 2 и |y2 - y1| < 2, то индекс установлен вплотную.
    Ответ написан
    Комментировать
  • Как сохранять список функций с параметрами для последующего поочередного вызова?

    @deliro
    Вариант №1:
    Передавать не просто функцию в список, а кортеж из функции, позиционных и именованых аргументов. Т.е. вместо list.append(func) сделать
    list.append((func, (1,2,3), {'a': 'hello', 'b': 'world'}))

    Ну и вызывать как-то так:
    for f, args, kwargs in list:
        f(*args, **kwargs)


    Вариант №2:
    Добавить лямбду к каждой функции. Т.е. вместо
    chain_exec.append(operation_1(param_1 = 15, param_2 = 36))

    написать
    chain_exec.append(lambda: operation_1(param_1=15, param_2=36))


    Вариант №3:
    Использовать partial, но это как стрелять из пушки по комарам в твоём случае, однако, наиболее правильный вариант.
    Ответ написан
    Комментировать
  • Почему возвращается неверное значение инпута?

    Immortal_pony
    @Immortal_pony Куратор тега JavaScript
    При событии keydown вы получаете значение текстового поля до внесения в него изменений, так как ввод еще не завершен.

    Для обработки события keyup вы указали неправильный селектор. Ваша конструкция предполагает, что элемент с классом .select-city будет вложен в элемент .select-city (который будет вложен в элемент body).
    Исправить можно следующим образом:
    $('body').on('keyup', '.select-city', function(e){
        console.log(e.target.value)
    });

    Пример: https://jsfiddle.net/4uqLoL0L/1/

    PS В этом случае событие "onkeydown" в html уде будет лишним скорее всего.
    Ответ написан
    Комментировать
  • Как сделать брелок для поиска вещей?

    @Fixid
    ibeacon
    Все давно придумано.

    Типичные ТТХ:
    Размер: 4.6×2.5×0.3 см.
    Тип батареи: CR2016
    Время автономной работы: 1 год
    Чипсет BLE: RF 51.822
    Время отклика:от 10 мс до 10 сек
    Диалоговый код шифрование: есть
    Тип корпуса: разборный
    Стоимость: 1200 руб

    У китайцев готовый брелок стоит 500р.
    Для телефонов есть куча приложений-радаров
    Ответ написан
  • Как сравнить 2 тхт файла и удалить повторы?

    @undeadter
    Как то так:

    file_1 = open('1.txt', 'r').read().split('\n')
    file_2 = open('2.txt', 'r').read().split('\n')
    
    array = []
    for email in file_1:
        if email.split(':')[0] not in file_2:
            array.append(email)
    
    str = ""
    for email in array:
        str += email
        str += '\n'
    
    file_3 = open('3.txt', 'w')
    file_3.write(str)
    Ответ написан
    6 комментариев
  • Как создать отдел тестирования?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    Возьмите опытоного QA и он все вам расскажет, как надо делать.

    >1) Огромное разнообразие вариантов построения продуктов из блоков конструктора - что работает у одного заказчика, может не сработать у другого по разным причинам. На какой конфигурации конструктора проводить тесты?

    На наиболее часто встречающихся или приносящих основной доход.

    >2) К конструктору нет четкой спецификации (и не будет в данный момент), лишь список задач в баг-трекере, а значит тестировщикам непонятно что тестировать. Можно попробовать писать тесты на новые задачи и постепенно они покроют все, потихоньку добавлять тесты на функционал, который не попадает в новые задачи. Сработает ли?

    Сработает, но у разработчиков будет большая просадка по времени - так как тестировщикам надо будет спрашивать у них много о системе.

    >3) Превышение возможностей подразделения по поддержанию тестов в актуальном состоянии. Скорее надуманная проблема, но тем не менее, может ли получится так, что тестов станет слишком много и при выходе новой версии продукта тестировщики не будут успевать актуализировать тесты под изменившуюся платформу?

    Это уже проблемы отдела тестирования и того как они будут решать задачу, но в целом такая проблема есть, но без конкретитки тут говорить нечего.
    Я знаю системы где 10к тестов держит один человек, и системы где 100 тестов поддерживает отдел из 6-7 человек.
    Ответ написан
    2 комментария
  • Как проверить в данной задаче можно ли делить чисто на 3 последнюю цифру?

    @Sumor
    Формулировка задания, я бы сказал очень неточная, но отвечаю так как я её понял.
    "Нужно найти разбиение стоимости на пяти- и трёхкопеечные монеты без остатка"
    Для стоимости более 15 копеек такое разбиение всегда можно найти. Для цены до 15 копеек возможность разбиения находится перебором.
    Для определения минимального количества трёхкопеечных монет смотрим на остаток деления на 5:
    остаток 0 - 0 (или 5) трёхкопеечных монет
    остаток 1 - 2 трёхкопеечных монеты
    остаток 2 - 4 трёхкопеечные монеты
    остаток 3 - 1 трёхкопеечная монета
    остаток 4 - 3 трёхкопеечные монеты
    Количество пятикопеечных монет считаем исходя из количества трёхкопеечных.

    NB: трёхкопеечные, а также пятикопеечные монеты пишутся вместе. Если вы пишите количество монет и не хотите склонять их названия, пишите количество после наименования: трёхкопеечных монет - 5.
    Ответ написан
    Комментировать
  • Как разрешить спортивный семейный IT спор?

    @kadibiget
    Программирование как хобби хорошо.
    А как профессия скучная рутина.

    Я всегда занимал места на олимпиадах по программированию.
    Сейчас не имею отношения к программированию вообще, хотя работаю в IT.
    Ответ написан
    Комментировать
  • Почему говорят, что ООП это зло?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Глупости. ООП - очень мощная парадигма. Бывают кейсы, когда она слишком накладна, это правда, но заявлять, что она зло...
    Безусловно, если обмазываться всякими хаскелями, лиспами, эрлангами, скалами... где ООП парадигма может не давать профита, либо не применима вовсе - конкретно в тех языках ее использовать и не нужно.
    В языках же заточенных по ООП парадигму - ФП с большой вероятностью будет плохой идеей.

    Как то статья была, жаль не нашел (если кто найдет - отпишите в комментариях пожалуйста), со сравнением ООП и ФП, одним из тезисов было сравнение существующих принципов и паттернов, в ООП: наследование, полиморфизм, инкапсуляция, SOLID, IoC, ServiceLocator,... а у ФП: функции, функции, функции...

    ФП сейчас набирает популярность, однако много людей, в том числе из моих знакомых, ярых поклонников этого направления вернулись обратно к "классике", в основном причина была такая: слишком высокая цена поддержки.
    Ответ написан
    2 комментария
  • Как научиться реализовывать алгоритмы?

    @cap_nemo
    Нужно налить зеленого чаю с юго-востока Индии, собранного в середине марта 19-летними индийскими девственницами в ясную ночь на 3/4 луны.

    Пить этот чай каждый день в течении 3-х лет. После чего нужно забить гвоздь 50 мм в доску, развернуть острием вверх и сесть на эту доску. Доска должна быть обязательно из сандала. Если озарение как программировать не придет сам собой, то предлагаю задуматься над следующим:

    • 80% программистов пишут говнокод и не волнуются, даже не потеют. Смысл волноваться именно Вам?
    • Иногда камень в руках перед злой собакой, лучше чем красивый перочинный нож на антресоли в гараже. Так ли важно качество кода, если код решает проблему?
    • Если вам надоел винегрет, начните делать оливье. Может стоить немного сменить подход?


    А если вам действительно интересно программировать, то рекомендую заметить для себя:

    • Нет предела к совершенству. Обращайте внимание на достигнутые вами результаты. Может их можно улучшить?
    • Всегда появляется новая методология или парадигма. Что мешает вам придумать свою? Естественным языкам тысячи лет, а то и более. А синтетические (для "реального" программирования) не старше 70 лет. Пока языки программирования достигнут необходимой гибкости, у многих программистов мозг закостенеет от конструкций вида GOTO ;-)
    Ответ написан
    Комментировать
  • Какие есть хорошие книги по java с уклоном в искусственный интеллект?

    @frozen_coder
    Java-developer
    Мне думается, что хорошие книги по Java и про искусственный интеллект - это разные книги. Не знаю за ИИ. За Java рекомендую классику - Эккель, Хорстманн, Блох, Шилдт как справочник. Если интересует именно Java, то овладейте ей как языком программирования, потом ищите книги по ИИ(с большой долей вероятности в ней могут оказаться примеры не на Java) и уже на Java реализуйте описанные в них идеи, алгоритмы, примеры и свои программы с ИИ.
    Про книги об ИИ был уже вопрос на тостере. Гуглите лучше.
    Что почитать об искусственном интеллекте?
    К ключевым словам поиска можете добавить машинное обучение, глубокое обучение (deep learning), нейронные сети.
    Ответ написан
    Комментировать
  • Как просканировать диапазон ip адресов?

    Inlore
    @Inlore
    Утилита Nmap
    nmap -v -Pn -p80 192.168.0.1-254
    -Pn - не пинговать (считать сервер доступным)
    -v verbose
    -p80 80 порт
    192.168.0.1-254 диапазон с 192.168.0.1 по 192.168.0.254

    Название деяния - сканирование портов, в РФ законно
    Документация по nmap https://nmap.org/man/ru/
    Ответ написан
    3 комментария
  • Как можно скрыть или изменить свой код, что бы его нельзя было посмотреть через браузер?

    @Sn0wSky
    Куча js в одну строку делается для экономии килобайтов, а не для "скрытия". Разве что он возможно будет обфусцирован, но это вряд ли остановит того, кому реально очень хочется.
    HTML'a не может не быть, если только они всё в канвас не запихали, что тоже html :)

    Абсолютных методов не бывает и быть не может
    Ответ написан
    1 комментарий
  • Как преобразовать список чисел в список комплексных чисел в Python?

    @stunoff
    вот так должно быть норм:

    data=[4,5,7,8,9,0,3,3,6,6]
    new = []
    it = iter(data)
    
    for x in it:
        new.append(complex(float(x), float(next(it))))
    
    print(new)
    Ответ написан
    Комментировать
  • Что можно сделать лучше в указанной форме с точки зрения юзабилити?

    @Nwton
    Ответить на вопрос, какая именно информация должна быть на общей страничке, сможет только тот, кто занимается покупкой тракторов на постоянной основе и регулярно просматривает подобные паспорта.

    У такого человека в голове уже сформировался шаблон из вопросов, ответы на которые дают понять подходит/нет. И в первую очередь он будет чекать информацию по этим вопросам. Очевидно, станет удобнее, если все ответы будут вынесены на одну страничку.

    Ваша задача узнать какую информацию по аппарату клиент просматривает в первую очередь и агрегировать её в одном блоке. Проводите опросы, следите за поведением клиентов, собирайте статистику, тестируйте разные варианты.
    Ответ написан
    1 комментарий