• Хочу написать python Бота который играет в сапер за меня, и наверное мне нужно наставление более опытного?

    Vindicar
    @Vindicar
    RTFM!
    1. Ввод данных
    Окей, гугл, как сделать скриншот в питоне

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

    3. Принятие решения
    Имея двухмерный массив, описывающий поле, определи, где надо ставить мину. Если решение принять не удаётся - определи, какую клетку надо открывать.

    4. Реализация решения
    Зная номер клетки, выполнить щелчок по ней. См. pyautogui.
    Ответ написан
    Комментировать
  • Как работает запуск корутин в asyncio?

    @kiriharu
    Python backend, Linux enjoyer
    При создании задачи при помощи asyncio.create_task она немедленно (при ближайшем переключении контекста, например при встрече await) начинает выполняться в цикле событий. Именно поэтому у тебя в первом примере сразу же стартанули все указанные задачи.

    await же, указанный в твоем коде, позволяет ожидать завершения задачи. Поэтому в твоем коде второго примера ты создаешь задачу, ждешь её выполнения и только потом переходишь к следующей:

    async def main():
        tasks = []
    
        for _ in range(10):
            task = asyncio.create_task(waste_time()) # создаем задачу
            tasks.append(task)
            await task # ожидаем выполнения
            # итерация завершена, переходим к следующей


    Если хочется запустить сразу все задачи, то тут было бы правильнее воспользоваться asyncio.gather, которая как раз будет ожидать выполнения всех задач:

    import asyncio 
    from time import time, sleep
    
    
    async def waste_time():
        print("Start work...")
        await asyncio.sleep(2)
        print("End work!")
    
    async def main():
        tasks = []
        for _ in range(10):
            task = asyncio.create_task(waste_time())
            tasks.append(task)
        await asyncio.gather(*tasks)
    
    asyncio.run(main())
    Ответ написан
    2 комментария
  • Не отображаются картинки при Debug=False?

    @nasausa
    urls.py проекта
    from django.urls import path, re_path
    from django.conf.urls.static import static
    from django.conf import settings
    from django.views.static import serve
    
    urlpatterns = [
        ...
    ]
    
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    urlpatterns += [re_path(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT,}),]
    Ответ написан
    2 комментария