Ответы пользователя по тегу Python
  • Что нужно поменять в коде, чтобы телеграм бот выводил новости из словаря по спаданию дате при методе sorted?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Если речь идёт о закомментированном sorted(list), то по-моему он не делает сортировки inplace. Он должен возвращать сортированный список. И вообще любой итерируемый объект.

    Список inplace по-моему сортирует метод list.sort()

    И функции и методу в параметрах можно указать направление сортировки reverse=True
    Ответ написан
  • Ошибка vk_api.exceptions.ApiError: [100] One of the parameters specified was missing or invalid: message is empty or invalid?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Сделай проверку перед вызовом метода, что line, передаваемый ему как параметр message, не пустой.
    Ответ написан
    Комментировать
  • Инициализируется ли строка во время ошибки?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Как я понимаю, как происходит «инициализация».

    Где-то создаётся объект, и переменная int_text создается и «привязывается» к этому объекту, как ярлычок к чайному пакетику.

    А объект «пустая строка» тут не создаётся. Ну, точнее, не получается на выходе правой части «уравнения». И ярлычок int_text никуда не привешивается. И, видимо, его тут же сьедает сборщик мусора.
    Ответ написан
    1 комментарий
  • Почему os.system не работает?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Надо либо оборачивать в кавычки каждое имя файла с пробелом, а кавычки, соответственно, экранировать бэкслешем, либо попытаться использовать os.startfile

    А вообще-то рекомендуют запускать это дело в subprocess, как-то примерно так:
    import subprocess
    my_file = "c:/path/to/my_file.xls"
    proc = subprocess.Popen(f"c:/program files/…/excel.exe {my_file}", shell=False)
    Ответ написан
    6 комментариев
  • Как определить, что введёные пользователем данные, это число?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    В Python input() возвращает строку. У строки есть много методов, из них часть- проверки строки на принадлежность к тем или иным типам символов. Один из таких методов - .isdigit() возвращает булево значение, содержит ли строка только цифры. Можно использовать этот метод для проверки введенных символов.
    Ответ написан
    Комментировать
  • Как отсортировать и вывести такой словарь A = {"A_1": {1: "Yes"}, "C_2":{2: "No"}, "B_1": {1: "Yes"}}?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Словари по определению не сортируются. Точнее, не гарантируют сохранение сортировки (хотя в последних версиях Python вроде как сохраняется, но это фича, я бы на неё пока что не опирался).

    Кроме того, существует специальный collections.OrderedDict, но требует импорта collections.

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

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Попробуйте так:
    message.author.send(f'Ты находишься на сервере {message.server.name}!')
    Ответ написан
    Комментировать
  • Не открывается установщик python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Если вам не критично именно чистый Python, установите дистрибутив Анаконда. Он установит вам и Python, и другие полезные для начинающего программы.
    Только обратите внимание, что надо взять дистрибутив, соответствующий вашей ОС - 32- битный или 64-битный.
    Ответ написан
    Комментировать
  • Как прописывать команды, MCPI(jam mode)?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Вы плохо искали. Эдак вы ничего не сможете сделать, если такую простую вещь не смогли нагуглить.
    https://github.com/arpruss/raspberryjammod
    Это сам мод, и там в самом начале ссылка на инструкции по программированию майнкрафта на Python.
    www.instructables.com/id/Python-coding-for-Minecraft
    Ответ написан
    2 комментария
  • Какие есть аргументы ctx.author (discord.py)?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Видимо, речь не про аргументы, а про атрибуты.
    Аргументы есть у функций и методов, это то, что передаётся функции в скобочках.
    То, что вы показали, это атрибуты. Посмотреть список атрибутов можно командойprint(dir(obj))
    При этом отобразятся все атрибуты объекта obj в виде списка (list).
    spoiler
    Если запустить dir() без аргументов, то получите список доступных имен, видимых в данной области видимости имен.
    a = 1
    print(dir())


    spoiler
    Рекомендую ознакомиться с языком на более простых примерах, нежели бот. Боты - довольно сложная штука, и учиться на ботах всё равно, что учиться на хирурга сразу на операциях на сердце. Начните с латыни, биохимии и анатомии.
    Ответ написан
    2 комментария
  • Запускаю скрипт, а в вывод выводит слово "Python", и так много раз, что делать?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    okkupai, коротко говоря: код работает так, как должен работать под виндой. Но он не предназначен для работы под виндой, и «в лоб» не заработает так, как изначально задумывался.
    Суть кода в том, чтобы каждые 2 секунды проверять наличие в списке процессов linux, запущен ли main.py и, если не запущен - запустить.
    Этот код специфический для linux, для винды будет по-другому. Как именно - это либо тебе разбираться и делать самому, либо нанимать фрилансера, чтоб написал тебе.

    Там, в общем, не сложно - но наш сервис не предназначен для решения таких задач.

    Альтернативы:
    • На win10 про есть подстстема linux, можно попытаться в ней запустить код.
    • Поставить виртуалку с linux и там запускать.
    Ответ написан
  • Какие приемы ООП используются в методе библиотечной функции python ecdsa?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    .from_string() с точки зрения конструкций языка питон - вероятно, метод, один из атрибутов класса SigningKey.

    второй параметр этой функции (вероятно, метода) curve=ecdsa.SECP256k1 я думаю задаёт тип эллиптической кривой для шифрования. Сам я в этом не силён, но слыхал, что это модный принцип шифрования на основе эллиптических, и ecdsa это как раз одно из таких криптографически-эллиптических.
    Тут почитайте.
    Что касается «какие приемы ООП»? Ну, класс используется… создаётся vk - экземпляр класса…
    Ответ написан
  • Когда запускаю код на MacBook с установленным Python, он не работает.На windows работает. Как исправить?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    На маке по-умолчанию вроде стоял чуть ли не 2-й Python, вы поставьте рядом с ним свежее (3.8 например), там и запускайте python3 my_script.py
    Ответ написан
    Комментировать
  • Откуда взялась неконтролируемая рекурсия в методе __repr__?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Думаю, дело в том, что запись f”{self”} пытается вернуть строковую запись объекта. Но строковая запись объекта как раз и возвращается методом __repr__, то-есть самим собой. Вот и получается, что оно само себя вызывает.
    Ответ написан
    2 комментария
  • Почему выдает ошибку UnboundLocalError: local variable 'a' referenced before assignment?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Во-первых, global a надо объявлять в той области видимости, в которой вы хотите видеть глобальную переменную.
    Во-вторых, видите, как легко накосячить с глобальными переменными? Ещё не начали, уже ошибки.
    Не связывайтесь с ними. Передавайте в функцию и возвращайте из функции нужные переменные и значения.
    Ответ написан
    Комментировать
  • Ошибка импорта класса из модуля?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Положим, у меня в корне проекта лежит файл
    parser.py с содержимым вроде:
    class Web_parser:
        def __init__(self):
            print('Web_parser initialised')


    Можно
    import parser
    wp = parser.Web_parser()


    а можно
    from parser import Web_parser
    wp = Web_parser()


    И то и то вроде как работает. В обоих случаях при создании экземпляра класса печатается строчка про инициализацию.
    Ответ написан
    Комментировать
  • Как задать вес определённому элементу списка Python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Может, как-то так?
    items = [
        ["item1", 30],
        ["item2", 20],
        ["item3", 50]
    ]
    weights = [i[1] for i in items]
    rand_items = random.choices(items, weights=weights, k=1)[0]
    print(rand_items)
    Ответ написан
    1 комментарий
  • Почему переменная n = 0?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    В Python запись eps < abs(diff)
    может быть или верно или не верно.
    Т.е. или 1 или 0.
    В приведённом коде там всегда будет 0 < 1.0, т.е. верно (истина, True, 1).

    Далее,range(1)это набор целых чисел начиная с нуля и меньше 1. Прикиньте, сколько и каких целых чисел в этом наборе?

    Попробуйте теперь сам ответить на свой вопрос.
    Ответ написан
    Комментировать
  • Нужна помощь в написании функций для чтения, записи файлов?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Ответ короткий: потому, что вы плохо знаете python. Из рук вон плохо. Инструмент сложный, и его надо изучать.
    Ответ длинный:
    1. приведенный код либо неправильно построен в части отступов, либо побился, его надо заново вставить внутрь тегов code.
    2. в коде вы переопределяете некоторые имена, которые являются встроенными функциями Python или методами некоторых встроенных классов, например file, list, add и т.п.
      Так делать не рекомендуется,
      точнее, в вашем случае не рекомендуется
      если вы не делаете это осмысленно, понимая, что вы именно переопределяете и именно встроенную функцию, и понимаете глубокий смысл и последствия. Короче, не делайте так.
      (В данном случае add не ломается, но все равно не надо. Выбирайте имена переменных более уникальные. Хотя бы command_edit, command_list и т.п.
    3. Вы открываете файл, но дальне ничего с ним не делаете. Почему-то в вашем коде предполагается, что текстовый файл при открытии волшебным образом превращается в contacts, который вроде как список словарей или что-то в таком роде (какую-то разновидность JSON?) Но он в коде не превращается ни во что, даже в тыкву. Переменная contacts, которая по-идее должна содержать в себе вышеназванную структуру, не определена в коде.


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

    Писать за вас тут решение вашей задачи никто не будет; а если таки найдется кто-то, то поверьте, они преднамеренно напишут так, что работать будет, но вы не поймете, и при случае не сможете ни поправить, ни объяснить кому-либо (преподавателю особенно).
    Ответ написан
    Комментировать
  • Как починить import caffe2.python.onnx.backend выдает что нужен onnx.optimizer, как его установить?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Если в проекте находится файл или папка с именем, соответствующим имени импортируемого постороннего модуля, то сначала импортируется то, что под рукой;
    поэтому очень желательно все имена всех модулей, переменных, констант, функций, классов, методов и т.п. в программе продумывать на предмет: "а не перезаписываю ли я этим именем ссылку на существующий и очень важный объект с таким же именем? И если перезаписываю, то правильно ли это, то ли это, что я хочу?"
    Проще всего ко всем создаваемым переменным добавлять в начале "my_" - т.е. не
    list
    , а
    my_list
    , и т.п.
    Ответ написан
    Комментировать