• Почему почему такое происходит с not not?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Элементарно, Ватсон.
    Вычисление идет сначала ==, потом к результату применяется not, потом еще раз.
    Ответ написан
    1 комментарий
  • Как проверить город пользователя?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Занесите список городов в базу данных, и далее сверяйте город с базой.
    Ответ написан
    Комментировать
  • Как написать регулярное выражение?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Очень плохая идея парсить html регулярными выражениями. Они не для этого предназначались. Есть специальные инструменты для этой цели, которые извлекают данные по xpath.
    Ответ написан
    Комментировать
  • Почему мой код считается медленным?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Изучение алгоритмов стоит начинать с чтения соответствующего учебника, как минимум станет известна методика оценки сложности алгоритма. И лучше это делать после того, как прочитан учебник по языку и документация по его стандартной библиотеке.
    Ответ написан
    Комментировать
  • Как узнать нажата ли клавиша клавиатуры?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Мне нужно узнать в каком состоянии находится указанная клавиша.
    import ctypes
    from ctypes import wintypes
    import time
    
    user32 = ctypes.WinDLL('user32', use_last_error=True)
    
    VK_SPACE = 0x20 #Пробел
    
    def is_key_pressed(vk):
        return (user32.GetAsyncKeyState(vk) & 0x8000) != 0
    
    while True:
        print("Пробел нажатый?:", is_key_pressed(VK_SPACE))
        time.sleep(1)

    Virtual-Key Codes
    ctypes - Офф. документация
    ctypes - Доки на русском(возможно машинный перевод)
    Ответ написан
    Комментировать
  • Iptables, в чем назначение состояние NEW в цепочке INPUT?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Таким --state NEW -j ACCEPT вы разрешили новые коннекты на любые порты с любых IP-адресов через любой интерфейс.
    И все правила, идущие уже после этого ACCEPT - вообще не сработают, до них обработка не дойдёт, потом что это правило уже всем всё разрешило...
    И да, это полный аналог дефаултного правила INPUT[ACCEPT]. Поэтому так ни кто не пишет, в такое правило обязательно добавляют разные аргументы, типа через какой интерфейс, на какой порт, и с каких IP, и т.д.
    Ответ написан
    2 комментария
  • Iptables, в чем назначение состояние NEW в цепочке INPUT?

    @Zerg89
    New это только новые коннекты чаще всего через него ставятся ловушки против сканеров портов или защита доступов с фильтрами сети в цепочке drop из интернета чтобы не тратить процессорное время на проверку соответствий по всему файрволу ставится до RELATED,ESTABLISHED или с дополнительными фильтрами(адрес-листу, списку портов и тд) к которым точно доступа быть не должно
    То есть если порт не открыт динамически изнутри сети nat'ом такой конект будет сброшен
    Ответ написан
    1 комментарий
  • Iptables, в чем назначение состояние NEW в цепочке INPUT?

    hint000
    @hint000
    у админа три руки
    Давайте по аналогии. Вы заходите в автобус или в вагон поезда. В этот момент вы - NEW. К вам подходит кондуктор. В автобусе вы покупаете билет, а в поезде предъявляете ранее купленный билет. Кондуктор запоминает ваше лицо и больше к вам не пристаёт, потому что теперь вы - ESTABLISHED. А ещё у вас может быть с собой чемодан - это ваш RELATED.
    Когда вы делаете ... --state RELATED,ESTABLISHED,NEW -j ACCEPT -это значит что кондуктор спит или бухает, вошедших NEW зайцев никто не проверяет, они спокойно едут.
    Не забывайте, что после срабатывания -j ACCEPT или -j DROP дальнейшие правила в цепочке не применяются, так что не важно, что в следующей строчке вы хотите закрыть доступ по какому-то порту, если вы уже применили -j ACCEPT раньше.
    Ответ написан
    4 комментария
  • Как извлечь нужный текст из строки Python?

    @ceytnot
    Работаю не по специальности (:
    Если совсем просто и без подключения сторонних библиотек:
    stroka = "[Win32Window(hWnd=123456)]"    # исходная строка
    stroka = stroka.replace("[Win32Window(hWnd=", "")    # заменяем стандартным методом "[Win32Window(hWnd=" на пусто ""
    stroka = stroka.replace(")]", "")    # заменяем стандартным методом ")]" на пусто ""
    print(stroka)    # получаем 123456

    Можно еще упростить, если написать две строки с replace в одну:
    stroka = stroka.replace("[Win32Window(hWnd=", "").replace(")]", "")
    Ответ написан
    Комментировать
  • Как извлечь нужный текст из строки Python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    s = "[Win32Window(hWnd=123456)]"
    
    for n, i in enumerate([')', 'hWnd=']):
        s = s.split(i)[n]
    if s.isdigit():
        print(s)
    else:
        print("Цифры не найдены")


    А еще любопытный вариант:
    s = "[Win32Window(hWnd=123456)]"
    print(s[18:-2])
    Ответ написан
    Комментировать
  • Как извлечь нужный текст из строки Python?

    Hivemaster
    @Hivemaster
    Админ, который хочет программировать
    s = '[Win32Window(hWnd=123456)]'
    d = s[s.index('=')+1:s.rindex(')')]
    Ответ написан
    1 комментарий
  • Как направить трафик из внутреннего интерфейса на внутренний интерфейс, вне зависимости от default getway?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    С помощью iptables вы можете перенаправить трафик, только используя NAT. Это упрощает жизнь, так как не требует настройки маршрутизации на всем пути следования.
    Можно также маршрузитировать трафик в зависимости от ip адреса источника, это позволяет сделать iproute2
    Ответ написан
    4 комментария
  • Как фильтровать имя переменной?

    Justifour
    @Justifour
    Frontend Developer
    Попробуй
    const isValidData = (data) => {
      const regex = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
      return regex.test(data);
    }
    Ответ написан
    4 комментария
  • Как посчитать сумму значений к каждому ключу?

    0xD34F
    @0xD34F
    sums = { n[0]: sum(n[1]) for n in nba_players.items() }
    Ответ написан
    Комментировать
  • В чем минусы Arduino?

    @VT100
    Embedded hardware & software.
    Чем быстрее отбросите "ходунки" скетчей, тем лучше.
    Расширьте тест обработкой дребезга энкодера (или - помех на его входах).
    Ответ написан
  • Arduino в python какие плюсы и минусы?

    @dima20155
    you don't choose c++. It chooses you
    Прежде всего я бы задался вопросом какая ваша задача/цель. Hello world/что-то такого же уровня сложности -> пишите на чем хотите, хоть на js. Если пишите для себя, то всегда можно купить слабенькую, но stm32, а то и простенькую OrangePi, которые стоят не сильно дороже, зато скорость выполнения кода куда выше, чем у Arduino (хотя есть нюансы). Хотите высокую производительность за минимум денег -> C/C++.
    Также вам нужно сравнивать не python, а micropython, это специфичная реализация python. Как минимум для исполнения кода, написанного на python нужна среда выполнения. Данное ПО не приносит вам никакого профита, а лишь забирает ваши ресурсы, которые у Arduino и так не много.

    Python не позволяет использовать все ресурсы железа. Например, о real-time, в полном смысле слова, можно забыть, а это одна из причин почему пишут под MCU.
    С другой стороны программы на python рабрабатывать значительно проще, что является неоспоримым преимуществом в ряде применений.

    Upd: Нашел пример сравнения (не знаю насколько корректное) MicroPython и C++.
    https://www.youtube.com/watch?v=u9UfKTOcYNs
    Ответ написан
    4 комментария
  • Arduino в python какие плюсы и минусы?

    1. На МК нет обычного питона. Есть только MicroPython и аналоги
    2. Не на все МК, где есть Arduino, будет доступен и MicroPython
    3. Чистый Си/плюсы будут гораздо эффективнее, чем Arduino-обёртки и MicroPython.

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


    Ест смысл программировать ардуино на питоне?

    Если звёзды зажигаются, значит кому-то это нужно (с)

    Будет ли смысл в вашем случае - вы должны ответить сами, отталкиваясь от задачи, требований, и ресурсов.


    грубый в %-х

    От нуля до бесконечности.
    Если нужно выжимать последние соки из чипа - C++ будет явно впереди. А python не факт, что вообще влезет.

    Если нужно просто для учёбы на простых примерах - разница будет практически незаметна.
    Ответ написан
    Комментировать
  • Arduino в python какие плюсы и минусы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Смотря какие задачи ставить. Обычно для написания прототипов программ (POC, MVP) или просто для
    теста какой-то технологии Python очень выгодно подходит. Пока джависты и дот-нетчики раскачиваются
    и обдумывают типы и шаблоны разработки - питонщик может быстро слепить что-то работающее.
    Ответ написан
    2 комментария
  • Что особенного в IP адресе 8.8.8.8?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Многие провайдеры при истощении баланса перенаправляют все клиентские http-запросы на свою страничку с уведомлением о необходимости оплаты и каким-нибудь эквайрингом. Очевидно, что для их работы нужен работающий DNS, а зачастую ещё и доступ к CDN. Провайдеры поумнее оставляют доступ к своему DNS и запросы к CDN тоже через себя проксируют, но некоторые не заморачиваются и просто оставляют часть доступа в дикий интернет.
    Ответ написан
    3 комментария
  • Как заранее определить подсеть VPS серверов?

    ValdikSS
    @ValdikSS
    Примеры диапазонов IP-адресов многих хостинг-провайдеров можно увидеть в агрегаторах Looking Glass, например на сайте https://looking.house/points.php
    А вообще, информацию по IP-диапазонам можно получать из анонсов диапазонов AS через BGP. Например: https://bgp.he.net/AS200350#_prefixes
    Также дополнительная информация может быть доступна во whois.

    Если вам нужен VPN для Туркменистана, а не сами диапазоны и серверы, можете написать мне личное сообщение — подскажу, где купить.
    Ответ написан
    Комментировать