Задать вопрос
  • Как исправить ошибку в python - Task exception was never retrieved?

    SoreMix
    @SoreMix
    yellow
    В строке
    await msg.reply('Привет! Выбери царство.', reply_markup=kingdom)
    функцию kingdom нужно вызвать, чтобы она вернула клавиатуру. Без этого вы передаете саму функцию

    await msg.reply('Привет! Выбери царство.', reply_markup=kingdom())
    Ответ написан
    1 комментарий
  • Какие необходимы документы для полноценного функционирования сайта?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    152 фз. Европейская и США отмазки того же типа.
    Договор офферты.
    Пользовательское соглашение.

    Отдельно документы для каждого вида деятельности (то есть для продавца, сервиса оценки и так далее)
    Ответ написан
    Комментировать
  • Правильно ли я учусь программированию?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Чтоб обучение было эффективным - нужен план обучения. В противном случае ты
    можешь начинать с конца или крутиться где-то по кругу не видя обозримых границ
    этого фреймворка и языка.

    Если тебе нравиться просто так развлекаться - то развлекайся. Но это нельзя признать
    эффективным обучением. Подумай о том что другие люди ищут курсы (платные или бесплатные)
    и смотрят их и делают задания по плану.

    И как ты думаешь что быстрее и больше усвоит материала?
    Ответ написан
    4 комментария
  • Как получить все значения с типом строки из словаря python?

    GavriKos
    @GavriKos
    Обычная задача на рекурсию.
    Гуглите "обход дерева".
    Ответ написан
    2 комментария
  • Как словить параметр в ошибке в Telethon?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    from telethon import errors
    
    try:
        messages = await client.get_messages(chat)
        print(messages[0].text)
    except errors.FloodWaitError as e:
        print('Have to sleep', e.seconds, 'seconds')
        time.sleep(e.seconds)


    https://docs.telethon.dev/en/stable/concepts/error...
    Ответ написан
    1 комментарий
  • Провайдеры, которые подключают интернет по воздуху?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Интернет провайдеров с лицензиями на частоты не так много, это лицензируемый вид деятельности.
    Поискать таких можно у околоопсосных интеграторов, которые работают с юрлицами, предоставляя интернет "последней мили". Эти интеграторы берут трафик у операторов и перепродают его частникам по радио. Если короче, нужно прикинуться юрлицом и посетить корпоративные отделы операторов, чтобы они порекомендовали таких интеграторов. Но цены Вам не понравятся.
    Вариант сделать самому W-Fi мост на оборудовании Ubiquiti я рекомендовать не буду, он имеет много условий для реализации, да и тоже требует лицензии на частоты (физикам не дают).
    Ответ написан
    5 комментариев
  • Как перевести строку со шрифтом в обычный текст?

    Vindicar
    @Vindicar
    RTFM!
    Встроенной функции нет. И похоже, что речь идёт не столько о разных шрифтах, а сколько о гомоглифах - символах юникода из разных алфавитов, которые выглядят похоже. Например, как русское и латинское "о". Это нетривиальная задача, но пакет confusable_homoglyphs (ставится через pip) может помочь. В частности, функция is_confusable().
    from confusable_homoglyphs.confusables import is_confusable
    
    
    wtf = 'YOᑌ ᑎᗩᗰE 42'
    
    is_good = []
    result = []
    for c in wtf:
        data = is_confusable(c, preferred_aliases=[], greedy=True)
        if data:
            data = data[0]
            alias = data['alias']
            if alias in ('LATIN', 'COMMON'):
                data = False
        if data:
            is_good.append('!')
            print(data)
            result.append(data['homoglyphs'][0]['c'])
        else:
            is_good.append(' ')
            result.append(c)
        print()
    print(''.join(result))
    print(''.join(is_good))

    Работает неидеально, но настройки модуля лежат в JSON - можно кое-что поправить. Или создать issue на гитхабе проекта.

    Конечно, можно извратиться, отрендерить строку и прогнать по ней OCR, но это такая себе идея.
    Ответ написан
    1 комментарий
  • Знания компьютерных сетей?

    Да, достаточно, тк это база и после них тебе будет легче искать ответы на непонятки самостоятельно.

    Нет, не достаточно, тк у тебя в любом случае на практике возникнут вопросы, на которые тебе придётся искать ответы.

    Выбирай тот ответ, который тебя больше устроит.

    PS:
    Смотрю по вопросам твоим, что ты за год так и не определился, какую книгу прочтешь, может хватит вопросы задавать и уже пора хоть какую-то книгу открыть?

    Ну или смирись и забрось вообще - возможно это не твоё.
    Ответ написан
    Комментировать
  • Как принимать только уникальных пользователей?

    Vindicar
    @Vindicar
    RTFM!
    CREATE TABLE IF NOT EXISTS accounts (
                    id INTEGER PRIMARY KEY AUTOINCREMENT, 
                    users_name TEXT, 
                    acc_id INTEGER
    )

    Doplis01, ну вот и результат. Если у тебя УЖЕ ЕСТЬ уникальное для каждого пользователя целое число acc_id (естественный ключ), зачем ты добавил синтетический ключ id? Просто переделай таблицу, выкинь id, сделай acc_id PRIMARY_KEY без автоинкремента.
    Ответ написан
    2 комментария
  • Python как быстро получить число элементов архива tar.gz?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Не получится из-за специфики устройства tar-файла. Пока весь не прочитаешь, не узнаешь сколько в нём каталогов. Это потоковый формат, а тут он ещё и сжат сверху gzip'ом.

    Это как посчитать быстро сколько вещей в чемодане. Пока по одной не вытащишь и каждую не посчитаешь - не узнаешь.
    У других архиваторов, например zip, есть индексная табличка. Это как бумажка с перечнем всех вещей в чемодане. Она лежит прямо под крышкой и её можно достать первой.

    Придётся как-то обходить эту проблему. Например использовать другой формат архива, или еред архивацией делать отдельный файл с перечнем всех файлов, и его класть в архив первым. А может быть вам и не нужно на самом деле количество элементов в архиве,а того, что вы этим количеством хотите добиться можно достичь иначе.
    Ответ написан
    2 комментария
  • Почему код из книги Эрика Метиза "Изучаем Python" не работает?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    В английской версии всё ок между прочим.
    eng
    645355141213d133294531.jpeg


    При этом чуть ниже написано что определение функции модифицировали, добавив age, просто в самом фрагменте кода этого нет почему-то:
    В определение функции добавляется новый необязательный параметр age, которому присваивается специальное значение по умолчанию None


    Естественно, правильный код будет
    def build_person(first_name, last_name, age=None):
        """Возвращает словарь с информацией о человеке."""
        person = {'first': first_name, 'last': last_name}
        if age:
            person['age'] = age
        return person
    musician = build_person('jimi', 'hendrix', age=27)
    print(musician)
    Ответ написан
    4 комментария
  • Как при запуске сервера, запустить CRON с нужным окружением python?

    Procrastinationator
    @Procrastinationator
    Я не уверен на 100%, но вроде виртуалку нужно запускать как-то так: /home/my_project/venv/bin/activate
    Но это я тыкнул в небо. По-хорошему, увидеть что выдаёт ваша консоль.

    Если дело в этом, рекомендую создать bash скрипт:
    #!/bin/bash
    
    # Переход в директорию проекта
    cd /home/my_project
    
    # Активация виртуалки
    source /home/my_project/venv/bin/activate
    
    # Выполнить скрипт Python
    python /home/my_project/test.py

    И добавь ему права на выполнение: $ chmod +x run_cron.sh
    Потом пропиши его в CRON:
    @reboot /path/to/your/run_cron.sh
    Ответ написан
    Комментировать
  • Стоит ли мне знать как работает cmd для Python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Командная строка нужна когда у тебя есть задачи интеграции твоего кода с чем-то другим.
    Также полезно знать ее для задач админства и девопс-освства.

    Обычно знания работы с шеллом - (не только cmd но и bash) это большой плюс к другим
    скилам и к более широкому пониманию того как работает операционная система. Файлы.
    Named Pipes. Коды ошибок и состояний. Логгирование. Анализ крашей.
    Ответ написан
    1 комментарий
  • Стоит ли мне знать как работает cmd для Python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Если вы хотите водить машну, вы должны понимать хотя бы базовые основы её технического устройства.
    Потом вы прибежите на этот ресурс со своим непониманием почему что-то работает не так, как вы ожидаете.

    Безусловно нужно понимать как в общих чертах работает операционная система, понимать концепцию процессов, переменных среды окружения, командную строку, что такое паремтры командной строки и т.д.

    Если в одной их самых популярных книг вам-новичку что-то в каком-то порядке рассказывают, то, уж поверьте, автор книги гарантированно лучше вас разбирается в теме и понимает в каком порядке лучше подавать материал.
    Наивно и глупо предполагать, что вам виднее с вашим опытом.
    Нет ничего плохого, чтобы в чем-то сомневаться, но почему-то люди совершенно не умеют сомневаться в собственных гипотезах, а их часто стоит ставить под сомнение и проверять в первую очередь
    Ответ написан
    Комментировать
  • Какое программное обеспечение должно быть в сети?

    @Drno
    в чем вопрос то? перечислить ПО надо? так то это скорее на ТЗ для заказчика похоже))

    роутер - pfSense
    свитчи - микротик
    Управление юзерами - Ubuntu server + ldap (либо готовый "комбайн" Zentyal)
    на ПК для юзеров - Linux Mint
    Видеонаблюдение - сервер на Zoneminder + POE свитчи (либо платно Hikvision \ Trassir)
    СКУД - IronLogic
    Мониторинг - Zabbix
    Ответ написан
    5 комментариев
  • Как оптимизировать использование Python-ом ОЗУ?

    fenrir1121
    @fenrir1121
    Начни с документации
    Aiogram 3 набирает обороты и хапает себе ОЗУ
    Начните с доказательства этого утверждения.
    Как минимум мой опыт свидетельствует об обратном: десяток запущенных ботов потребляют на сервере один и тот же объем ОЗУ с аптаймом в несколько месяцев.

    Очистка памяти в Python выполняется автоматически путем подсчета ссылок на объекты и сборкой мусора (для циклических ссылок). Есть интерфейс для взаимодействия со сборщиком, но он не будет вам полезен. Запустите бот через профайлер вроде memray и ищите с чем связана проблема.
    Ответ написан
    Комментировать
  • Как сделать рандомное число без повторений при вызове функции?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Странные ответы тут приводят.
    import random
    lst = list(range(1, 5+1))
    random.shuffle(lst)

    Так у вас в списке будет случайно перемешанная последовательность.
    Но у вас есть требование (не знаю насколько оно осозанное), чтобы это была непременно функция.
    Надо понимать, что такая функция не будет чистой. Она должна выдать конечное количество разных значений и её придётся вернуть исключение, если от нее потребуют больше очерендым вызовом. Сделать это можно с помощью генератора.
    def make_shuffled_gen(a, b):
        lst = list(range(a, b + 1))
        random.shuffle(lst)
        yield from lst
    
    shuffled_getter = make_shuffled_gen(1, 5).__next__


    Ну или одним выстрелом:
    def make_shuffled_getter(a, b):
        lst = list(range(a, b + 1))
        random.shuffle(lst)
        return iter(lst).__next__
    
    shuffled_getter = make_shuffled_getter(1, 5)
    Ответ написан
    3 комментария
  • Логика структуры мультиязычного сайта?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    А давйте без "воможно", "наверное" и "я так думаю". Есть четкие правила, которые рекомендуют поисковые системы, и в данном случае программист абсолютно верно вывел все языки в отдельные урл: https://developers.google.com/search/docs/specialt...
    Ответ написан
    3 комментария
  • Почему не работает OWM?

    @vladislavlisitsyn Автор вопроса
    Решение:
    Заменить observation = mgr.weather_at_places(city) на observation = mgr.weather_at_place(city)
    Ответ написан
    Комментировать