• Что будет если замкнуть два цифровых порта Arduino на друг-друге?

    Ocelot
    @Ocelot
    Если упрощенно, цифровой порт - это два ключа: один ("верхний") замыкает пин на 5V, второй ("нижний") - на землю. Если открыт верхний ключ, на порт выводится 1, если нижний, то 0. Закрыты оба ключа - порт работает как вход, т.н. Z-состояние.

    Что будет если замкнуть два цифровых порта на друг-друге?
    Если на один порт вывести 1, а на второй 0, будет короткое замыкание через верхний ключ первого порта и нижний ключ второго.

    Возможны ли исключения?
    Да, если вы гарантируете, что состояния портов всегда будут одинаковыми (00 или 11), ничего не сгорит.

    А если только один на выход с высоким сигналом, а второй на вход?
    Всё ок, вход прочитает единицу, ничего не сгорит.

    А если оба на выход высокого сигнала?
    Как уже было сказано, кз не будет. Но переключать оба порта нужно строго одновременно, за один такт.

    А если оба на вход?
    Не сгорит, но если больше ничего к этим портам не подключено, вход будет читать всякий случайный мусор.

    Можно ли соединять пин 5V и читающий цифровой пин?
    Можно ли соединять землю и читающий цифровой пин?
    В обоих случаях можно. Но если случайно переключить пин на выход, будет кз. Поэтому замыкать входы на питание и на землю лучше не напрямую, а через резистор.

    Можно ли соединять пин земли и 5V?
    Будет короткое замыкание источника 5V. Ну хотя бы контроллер от этого не сгорит =)
    Ответ написан
    Комментировать
  • Уязвима ли эта Captcha?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ну, как минимум, она не работает! Проверить просто, открываете две вкладки, или два окна браузера одновременно и пробуете ввести капчу туда и туда. Результат Вас сильно поразит, а теперь откройте три-четыре окошка одновременно. Или подразумевается, что с вашим сайтом будут работать только в одноокошечном формате? Я по 5-8 вкладок на один сайт могу открывать.
    Ответ написан
    Комментировать
  • Почему не работает поиск подстроки в строке?

    robux
    @robux
    Частая ошибка: либо двойное равно в присваивании, либо присваивание в условии.
    Особенно для тех, кто писал на Бейсике, Паскале и им подобным :)
    Ответ написан
    Комментировать
  • Как удалить строки у сотни файлов одновременно?

    @lexxand
    Notepad ++
    Нажимаете ctrl+h, в окошке выбираете папку в которой лежат все файлы, в поле "найти" - свой код
    Далее - "заменить все"
    Ответ написан
    Комментировать
  • При сборке проекта пропадает картинка, как исправить?

    @Andy_U
    Сначала добавьте в код функцию:

    def resource_path(relative):
    
        if hasattr(sys, '_MEIPASS'):
            return os.path.join(sys._MEIPASS, relative)
        else:
            return os.path.join(os.path.abspath("."), relative)


    а потом обращайтесь к ресурсам примерно так:

    self.setWindowIcon(QtGui.QIcon(resource_path('runcubit_gui.ico')))
    self.tray_icon.setIcon(QtGui.QIcon(resource_path('runcubit_gui.ico')))


    Это будет работать и при прямом вызове питоновского скрипта, и после PyInstaller'а.
    Ответ написан
    Комментировать
  • Запись строк только в конец файла?

    BlackLacost
    @BlackLacost
    Если вы хотели между первой и второй линей вставить третью, а получившиеся третей и второй четвертую, то это можно сделать так:

    with open('tmp', 'w') as file:
        file.write('line 1\n')
    
    with open('tmp', 'a') as file:
        file.write('line 2\n')
    
    with open('tmp', 'r+') as fd:
        contents = fd.readlines()
        contents.insert(1, 'line 3\n')
        fd.seek(0)
        fd.writelines(contents)
        
    with open('tmp', 'r+') as fd:
        contents = fd.readlines()
        contents.insert(2, 'line 4\n')
        fd.seek(0)
        fd.writelines(contents)
        
    with open('tmp') as f:
        for line in f:
            print(line, end="")

    line 1
    line 3
    line 4
    line 2
    Ответ написан
    1 комментарий
  • Как отсортировать список словарей по значению?

    igorzakhar
    @igorzakhar
    >>> l = [{'name': 'C', 'price': 5}, {'name': 'A', 'price': 2}, {'name': 'B', 'price': 1}]
    >>> newlist = sorted(l, key=lambda k: k['price'])
    >>> newlist
    [{'name': 'B', 'price': 1}, {'name': 'A', 'price': 2}, {'name': 'C', 'price': 5}]

    UPD.
    Специально для longclaps:
    >>> from operator import itemgetter
    >>> newlist = sorted(l, key=itemgetter('price'))
    >>> newlist
    [{'name': 'B', 'price': 1}, {'name': 'A', 'price': 2}, {'name': 'C', 'price': 5}]
    Ответ написан
    1 комментарий
  • Почему Print выполняется 2 раза?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Потому что вы скрипт назвали json.py. Он импортирует сам себя.
    Ответ написан
    1 комментарий
  • Почему возникает ошибка "invalid character in identifier"?

    @immaculate
    Программист-путешественник
    Вам соверешенно ясное сообщение выдается: у вас за последней закрывающей скобкой стоит какой-то странный непечатаемый символ Unicode.
    Ответ написан
    3 комментария
  • Как из вложенного списка достать 2 элемент?

    tumbler
    @tumbler Куратор тега Python
    бекенд-разработчик на python
    sum(x[1] for x in b)
    Ответ написан
    Комментировать
  • Python заполнить таблицу word?

    TomasHuk
    @TomasHuk
    Если готов шаблон - пробуйте docxtpl.
    Алгоритм:
    1. Предварительно в шаблоне word прописать теги в виде {{ }} на месте вставок.
    2. В программе сгенерировать файл docx на основе шаблона. В сгенерированном документе теги будут заменены нужными значениями.
    Пример из документации:
    from docxtpl import DocxTemplate
    
    doc = DocxTemplate("my_word_template.docx")
    context = { 'company_name' : "World company" }
    doc.render(context)
    doc.save("generated_doc.docx")
    Ответ написан
    Комментировать
  • Как разделить буквы в словах на пары?

    AnnTHony
    @AnnTHony
    Интроверт
    s = "Привет мир"
    [s[i:i+2] for i in range(0, len(s), 2)]
    # ['Пр', 'ив', 'ет', ' м', 'ир']
    Ответ написан
    Комментировать
  • Как оптимизировать сумму ряда?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Аналитически.
    59fe144ebe173368222815.gif
    Я нашёл этому поистине чудесное доказательство, но поле ввода слишком узко для него. (C) Ферма.
    Решение
    Рассмотрим дроби - слагаемые данной суммы. Очевидно, что знаменатели могут меняться от 2 до 2k.
    Попробуем определить, какие числители будут в дробях со знаменателем n. Для этого нам надо разложить n на пары x и y всеми возможными способами, учитывая ограничения 1 ≤ x ≤ k, 1 ≤ y ≤ k и взять допустимые значения x.
    Если 2 ≤ n ≤ k, то допустимыми значениями x будут 1 ... n-1. Для k+1 ≤ n ≤ 2k допустимыми значениями x будут n-k ... k. Таким образом, мы можем записать сумму числителей для каждого знаменателя:
    59fef5831ed62261528289.png
    Теперь, с учётом полученной системы запишем, как будет выглядеть полная сумма всех дробей:
    59fef5c331774953483286.png
    Заметим, что если в первой сумме начать суммирование не с 2, а с 1, то сумма не изменится, поскольку добавленное слагаемое равняется нулю. Во второй сумме перенесём k из пределов суммирования в слагаемое. Получим две суммы с одинаковыми пределами, а значит их можно объединить в одну:
    59fef699cef72869621752.png
    Ответ написан
    2 комментария
  • Как исключить из диапазона число в языке Python?

    aRegius
    @aRegius
    Python Enthusiast
    Добрый день!

    Если чисел три:
    >>> a = 1
    >>> b = 5
    >>> c = 3
    >>> x_min, x_avg, x_max = sorted((a, b, c))
    >>> x_min
    1
    >>> x_max
    5
    >>> x_avg
    3

    Если больше трех:
    >>> a = 1
    >>> b = 5
    >>> c = 3
    >>> d = 2
    >>> x_min, *x_avg, x_max = sorted((a, b, c, d))
    >>> x_min
    1
    >>> x_max
    5
    >>> x_avg
    [2, 3]
    Ответ написан
    Комментировать
  • Как упаковать python скрипт в exe?

    Maxsior
    @Maxsior
    loading...
    Если размер проекта небольшой, то отличным решением будет сделать SFX-архив, засунуть в него всё необходимое и сконфигурировать запуск основного файла после распаковки.

    Без заморочек и особых инструментов не требуется. Инструкций как наколдовать сценарий для SFX-архива в интернете куча, и есть немало инструментов, которые упрощают это процесс - стандартного редактора winRAR предостаточно.
    Ответ написан
    Комментировать
  • Как по средствам питона автоматизировать процесс копирования текста из MS WORD в другой документ и расставлять по нужным местам(ФИО)?

    TomasHuk
    @TomasHuk
    Используйте библиотеку docxtpl.
    Алгоритм:
    1. Предварительно, чисто для удобства сделать файл txt со списком ФИО (файл удобно считать в список python).
    2. Создать шаблон word, в котором прописаны теги в виде {{ }} на месте вставок.
    3. В цикле пройтись по списку с ФИО и сгенерировать файл docx на основе шаблона. В сгенерированном документе теги будут заменены нужными значениями.

    Пример из документации docxtpl:
    from docxtpl import DocxTemplate
    
    doc = DocxTemplate("my_word_template.docx")
    context = { 'company_name' : "World company" }
    doc.render(context)
    doc.save("generated_doc.docx")
    Ответ написан
    3 комментария