Задать вопрос
  • Как научить общаться несколько модулей на Python?

    tsb99x
    @tsb99x
    Инженер-Разработчик
    Для реализации архитектурного подхода с обработкой данных через worker'ов для Python актуален Celery. У него есть хороший гайд first steps, который поможет поднять брокер и понять азы работы. Есть возможность работы с различными вариантами брокеров (вместо Kafka).

    Если наличие брокера не обязательно и можно обойтись простыми HTTP-соединениями (предполагаю это из-за упоминания сокетов), рекомендую посмотреть в сторону Bottle и делать запросы через библиотеку Requests.
    Ответ написан
    Комментировать
  • Python. Перебор уникальных значений пропускает значения?

    @bbkmzzzz
    Не стоит использовать имена, совпадающие с встроенными типами.

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

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Вы читаете список и параллельно с этим изменяете его.
    Вообще, странная конструкция у вас.
    Ответ написан
    Комментировать
  • Python. Перебор уникальных значений пропускает значения?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Потому что не надо изменять итерируемую коллекцию.
    Ответ написан
    Комментировать
  • Пайтон ругается на конструкцию if-elif. В чём ошибка?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    1. Табы лишние
    2. elif не используется без аргументов. Либо используйте else, либо передавайте дополнительное сравнение

    Либо
    age = int(input("Сколько вам лет?"))
    if age < 100 :
        print("понятненько")
    else:
        print ("А?")


    Либо
    age = int(input("Сколько вам лет?"))
    if age < 100 :
        print("понятненько")
    elif age > 150:
        print ("А?")
    Ответ написан
    2 комментария
  • Пайтон ругается на конструкцию if-elif. В чём ошибка?

    @Araya
    https://pythonworld.ru/osnovy/instrukciya-if-elif-...
    Нашел буквально за 5 секунд
    Ответ написан
    Комментировать
  • Парстинг Steam, через google таблицу, проблемы с importxml?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Попробуйте получить код страницы вот такой функцией. Если там нет искомых данных, значит они подгружаются скриптами.
    /**
    * ОТкрывает URL и возращает код страницы
    * Telegram - @ProgrammerForever
    *
    * @param {string} URL URL который нужно открыть
    * @param {boolean} isCut Указывакт, нужно ли обрезать страницу до 50000 символов по длине, по умолчанию false
    * @param {boolean} noScript Указывакт, нужно ли удалять скрипты из кода
    * @return Исходный код страницы
    * @customfunction
    */
    function getHTML(URL,isCut,noScript) {
      if ((URL === undefined)||(URL == "")) { return "#ОШИБКА Пустой URL";};
      if (isCut === undefined) {var isCut=true;};
      if (noScript === undefined) {var noScript=true;};
      if (URL.map){     //Если задан диапазон
        return URL.map(getHTML);
      }else{
        try {
          var payload = {
            'rand':(new Date()).getTime()
          };
          var headers={
            'Connection': 'keep-alive',
            'Cache-Control': 'max-age=0',
            'Upgrade-Insecure-Requests': 1,
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36',
            'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
            'Accept-Encoding': 'gzip, deflate, br',
            'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7'
          };
          var options = {
            'method' : 'get',
            'headers' : headers,
            'payload': payload
          };
          
          var response = UrlFetchApp.fetch(URL,options);
          var charset=response.getAllHeaders["charset"];
          //var responseText=response.getContentText(charset?charset:"windows-1251");
          var responseText=response.getContentText(charset?charset:"UTF-8");
          if (noScript){ 
            responseText=responseText.replace(/<script[^>]*>(?:(?!<\/script>)[^])*<\/script>/gmi,"");
            responseText=responseText.replace(/<!--.*?-->/gmi,"");
            responseText=responseText.replace(/<link.*?\/>/gmi,"");
            responseText=responseText.replace(/<meta.*?\/>/gmi,"");
            responseText=responseText.replace(/[\n\r\t]/gmi,"");
            
          };
          if (isCut&&(responseText.length>50000)){return responseText.substring(0,50000);}else{return responseText;};
        } catch (err) {
          //return JSON.stringify(err);
          return "#ОШИБКА "+err.message;
        };
      };
    };
    Ответ написан
    Комментировать
  • Какой монитор выбрать для мака.(для работы с изображением)?

    lamer350
    @lamer350
    กำลังสูงสุด
    Чисто по цветам и качеству картинки хорош LG 27UL650, но придется масштабировать интерфейс мак ос до 2560x1440, думаю для работы с фото не сильно имеет значения, с текстом сложно - так как будет мыльновата картинка (как и на любом 27" 4к мониторе). Зато у монитора практически нет глоу и практически идеально равномерная подсветка, чуток не дотягивает до макбука...
    Ответ написан
    4 комментария
  • Какие сущности или слои должно иметь приложения такого формата?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Материнка.
    у нее комплектующие типа
    процессор
    память
    hdd
    Sdd
    usb
    и прочее.

    Но !

    Энтити
    это
    Материнка.
    процессор
    память
    hdd
    Sdd

    И вы уже в репозитории создаете служебный метод.
    GetCompatiblyCpu возвращающий процессоры совместимые с матерью.

    А уже на уровне выше вы собираете модель, которая содержит всю требуху.
    База она должна быть простая
    Ответ написан
    2 комментария
  • Хватит ли Macbook Pro 2012 для фронтенда?

    @Asokr
    Странно, но у меня, там где фигма, мой i7 7500 и 8 гигов оперативки не справляются, если параллельно открыть фотошоп, или если ноут не перезагружал дня 4-5...
    Проц тут не проблема, но только фигма съедает 2-3 гб оперы, фотошоп хочет около 2, + пару вкладок хрома около 1500мб, где остальное не известно, но факт, что нужно 16 гигов ))
    Ответ написан
    1 комментарий
  • Как лучше всего хранить медиа файлы?

    tumbler
    @tumbler Куратор тега Python
    бекенд-разработчик на python
    Зависит от целей и задач. API файловой системы позволяет читать только часть файла, поэтому проблемы типа "только 2 минуты видео" решаются довольно просто: загружать из облака только те диапазоны байт которые требуются. И от формата зависимости нет.
    Ответ написан
    3 комментария
  • Как сделать аналогичную программу на c++ (для тех кто знает python и c++)?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Фактически я знаю все, кроме .split, так что мне хотелось бы чтобы вы привели пример работы с аналогом .split в c++

    Пробовали в Google вбить запрос "c++ split string"?
    Ответ написан
    Комментировать
  • Хватит ли мощности макбука?

    @McBernar
    16gb строго. Шторм прожорливый. Да и Фигма тоже. Добавьте еще Слак и Хром — и все, память забита.

    Там разница небольшая между 8 и 16. Доплатите, не жалейте.
    Ответ написан
    1 комментарий
  • Как отсортировать словарь через sorted() с использованием лямбды в параметре key?

    ruzzz
    @ruzzz
    C++/Python
    sorted принимает итерируемый объект.
    sorted(publist, ...), где publist - это словарь, итерирует по ключам словаря, так работает итерация для словаря в питоне.
    sorted(publist.items(), ...) - итерирует по кортежам (tuples) вида (ключ, значение) из словаря.
    Именно от этого и такой выход из sorted. Она отдает отсортированное, то что приняла.

    Кстати, лишь недавно в питоне (3.7 официально и 3.6 по факту, вроде) словарь по умолчанию помнит порядок ключей, добавленных в него.

    Возможно стоит продумать, что и в какой точке кода важнее: быстрый доступ к данным по ключу словаря, или же работа с отсортированными данными. Можно отсоритовать в тот момент, когда это действительно нужно.
    Ответ написан
    Комментировать
  • В чем разница multithreading, multiprocessing и асинхронности?

    @majstar_Zubr
    C++, C#, gamedev
    Multiprocessing и multithreading относятся к стратегии управления разделяемыми ресурсами и оптимизации простоев между задачами, а Asynchronous invocation к паттернам проектирования.

    Многопроцессный подход к решению позволяет скинуть обработку доступа к разделяемым ресурсам на ОС, а многопоточный позволяет самому разработчику более гибко управлять этим разделением.

    Всегда хочется писать однопоточный код, который компонуется в разные исполняемые файлы, которые можно запустить как отдельные процессы. Но проблема кроется на системном уровне - с точки зрения скорости исполнения работы процессором, задержки и ожидания передачи пакетов по сети или нахождения и чтения файла просто громадные. За то время, как решение одной задачи ждёт ответа базы данных, нерационально тратить время процессора на холостую работу активного ожидания, когда все что делает процесс, это по десять раз в мс спрашивает у ОС, пришел ли ответ, пришел ли ответ, пришел ли ответ... Пройдет много времени пока ОС поймет, что процесс ничего полезного не делает, и пока переключит контекст, выгрузит один процесс, загрузит другой, может прийти ответ для процесса, который его ждал. Но теперь придется ждать, пока ОС не загрузит его.
    Другая проблема процессного подхода - захват ресурса. Применяя многопоточность можно экономить на том, что обращаться к системным ресурсам будет процесс, и потоки могут просто владеть ресурсом сообща, и как будет разделяться это владение решает сам разработчик. Более того, задача чтения из общей памяти более проста, если это происходит в рамках одного процесса, а межпроцессные взаимодействия всегда более тяжеловесные.

    Асинхронный вызов имеет отношение к высокоуровневым языкам. При синхронном вызове метода с точки зрения вызывающего кода происходит ожидание результата метода. При асинхронном вызове вместо ожидания происходит почти сразу переход на исполнение следующих инструкций, после вызова асинхронного метода.
    В рамках асинхронного вызова также могут быть объявлены фьючерсы и промисы, которые по факту разделяют по времени выделение памяти, инициализацию и присвоение возвращаемого асинхронным методом значения.

    То, как по факту будет реализован асинхронный вызов - представляет ли он ожидание исполнения транзакции, или получения сообщения от брокера, ожидание получения результата от другого процесса или задачи, которая решается в том же процессе, но в другом потоке- это уже зависит от разработчика р выбранных проектных решений.
    Ответ написан
    Комментировать
  • Где найти файл чистой прошивки efi для macbook air 2015 11' (a1465), 661-02347?

    15432
    @15432
    Системный программист ^_^
    На форумах по ремонту ноутбуков, например
    https://yadi.sk/d/Hpik_rAdQKZJNw

    P.S. Разблокировка делается не так, как вы собираетесь сделать. Обязательно сохраните оригинальный дамп перед экспериментами.
    Ответ написан
    2 комментария
  • Списки словари Странность или баг?

    ScriptKiddo
    @ScriptKiddo
    Нельзя делать итерацию по списку и одновременно удалять элементы. Делайте итерацию по копии и удаляйте из исходного массива.
    for element in geo_logs[:]:
    Ответ написан
    3 комментария
  • Сравнение переменных?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    import feedparser
    import time
    
    
    upwork_rss_url = 'https://www.upwork.com/ab/feed/jobs/rss?sort=recency&user_location_match=1&paging=0%3B10&api_params=1&q=&securityToken=6da89e82d7da8ae885411b27044affdc3a71a8f6b7bd5867c9b62e1c7f0ce3cb7ba1097847ae92d8a180517cfb5636ced80f02cd6ca5d0327e553c48dd37da38&userUid=646985892418633728&orgUid=646985892422828033'
    jobs = []
    
    while True:
    
        feeds = feedparser.parse(upwork_rss_url)
    
        for job in feeds.entries:
            title = job['title']
            if title not in jobs:
                print('New job found\n', title)
                jobs.append(title)
    
        time.sleep(600)
    Ответ написан
    Комментировать
  • Какой macbook лучше подойдет для разработки?

    Zoominger
    @Zoominger
    System Integrator
    Первый берите. У него и экран больше, и процессор мощнее, о чём тут думать-то.
    Ответ написан
    4 комментария
  • Как правильно определять класс объекта принятого из сети в python?

    tumbler
    @tumbler Куратор тега Python
    бекенд-разработчик на python
    Не используйте pickle из внешних источников вообще: этот формат позволяет выполнять произвольный код при десериализации. Ну а если очень хочется, вынесите Ab в общий пакет.
    Ответ написан
    1 комментарий