Ответы пользователя по тегу Python
  • Как создать offline карту на python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Надо нанять профессионала, заплатить ему аванс и дать ему задание. Затем получить результат и проверить на соответствие заданию. После доведения результата до финального соответствия заданию оплатить расчет.
    Ответ написан
    Комментировать
  • Как исправить ошибку "AttributeError: 'set' object has no attribute 'items'" в дискорд-боте?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    В вашем коде несколько ошибок, одна из них - в качестве headers ожидается структура типа «словарь» («dict»), а вы создаете тип «множество» («set»).
    Должно быть что-то вроде:
    headers = {'user-agent': 'my-app/0.0.1', 'token': 'Токен есть если что'}

    и так далее, это прям из документации по requests

    Вторая ошибка - for lines in lines:
    очевидно надо что-то вроде
    for line in lines:
        …json = {"content": line}


    Исходя из всего этого видно, что хорошо бы разобраться со структурами вообще и в python со стандартными встроенными типами структур в частности, а также с итераторами и итерацией.
    Ответ написан
    1 комментарий
  • Написал код но он не работает подскажыте пожалуйста?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Вверху сайта есть строка поиска. Введите туда строки ffmpeg pyaudio и вы обнаружите, что этот вопрос задают тут еженедельно или чаще. Воспользуйтесь любым из ответов на предыдущие аналогичные вопросы.
    Ответ написан
  • Почему в моем коде в функции mehanika2 не вызывается функция menu1?

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

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    С телефона не осилил код, но в общем случае добавлять надо так:
    my_dict = {“key”: “value”}
    my_dict.update({“new_key”: “new_value”})
    Ответ написан
  • 'NoneType' object is not iterable, что делать?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Элементарно, Ватсон:
    Метод .remove() всегда возвращает None.
    Ответ написан
    2 комментария
  • Как улучшить код?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Улучшить можно по разным направлениям.
    • С одной стороны, новые версии python предоставляют новые возможности, которые могут позволить сделать код плотнее и аккуратнее, к примеру заменить гирлянды if/elif на match/case.
    • С другой стороны, можно доработать надежность программы, обработав крайние случаи, потенциальные ошибки и др.
    • С третьей стороны - рефакторинг по подобным друг другу фрагментам, где делается практически одно и то же, к примеру функции про рестарт практически однотипны и можно свести к одной функции с набором параметров.
    • А можно рефакторить еще глубже, сделать класс типовых приложений, обладающий типовыми методами, от него наследовать каждое приложение вашей программы, ну и всё вот это вот ООП и т.п.
    • Можно все текстовые строки вынести в файл статики и оттуда подтягивать, и если хорошенько подумать, то еще и сделать возможность выбора языка.
    • А еще обвешать всё юнит-тестами.

    Да мало ли…
    Глубоко не вчитывался, но есть над чем поработать.
    Ответ написан
    1 комментарий
  • Как сделать случайную генерацию мира в pygame?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Есть два подхода - готовые уровни и генерация уровней.

    В конкретном случае судя по коду у вас готовый уровень и парсер готового псевдографического уровня. Т.е. ваш код разбирает ранее сделанную строчную псевдографику и переводит ее в объекты, экземпляры классов.

    Для генерации рандомных миров должно быть наоборот: экземпляры классов генерятся с определенными параметрами, включая координаты, а затем отображается псевдографическая «карта» с нанесением этих заранее сгенеренных объектов.

    В общем случае вам надо копать тему «процедурная генерация уровней». На эту тему очень много уже наработок, нет смысла изобретать свой велосипед.

    Рекомендую искать и читать о процедурной генерации псевдографических уровней игр. Там не всё вам подойдет прям «в лоб», но кое-что будет полезным.
    Ответ написан
    Комментировать
  • Ничего не понятно, что делать?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Всё как написано в коде:
    • Выбрать случайного персонажа
    • Выбрать случайное сообщение
    • В цикле отправить выбранному выбранное n раз.

    А вам надо в цикле в каждой его итерации выбирать случайного персонажа и случайное сообщение, и тут же отправлять.
    Ответ написан
    2 комментария
  • Как в цикле менять название объекта/переменной?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Если у вас в коде появились именованные переменные, вам скорее всего нужны списки или словари.
    Ответ написан
    5 комментариев
  • Насколько приемлема такая проверка на четность (делимость) в Python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Чтоб было совсем уж явно и правильно:
    if bool(a % 2):
    Ответ написан
    3 комментария
  • Как получить информацию сервера с помощью библиотеки python-valve?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Надо смотреть, какой тип возвращает метод .info()
    Возможно, это список, строка или другую подобную структуру. Тогда оно ждет не ключ, а порядковый номер.
    Ответ написан
    6 комментариев
  • Как исправить проблему импорта библиотеки python-valve?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Библиотека valve поддерживает максимум python 3.7, у вас 3.12. Библиотека не обновлялась около 4 лет. Закопайте стюардессу.
    Ответ написан
    Комментировать
  • Как правильно оформить код?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Код на python рекомендуется оформлять в соответствии с PEP 8
    Ответ написан
    Комментировать
  • Что сделать что бы при print списка выводились нормальные данные а не что то непонятное?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Классы по идее должны описывать объекты.
    class Create какие объекты описывает? На мой взгляд, это скорее должно быть класс «TokenPair» или что-то такое. А у него должны быть методы типа set_pair, get_pair, delete_pair и возможно display.
    Для токенов и для линков тоже должны быть отдельные классы.

    class Menu по-идее должен описывать меню и тоже содержать методы для конструирования, изменения, возможно отображения и удаления меню.
    Элементы меню тоже должны быть описаны своим отдельным классом.
    Ни класс меню, ни класс элементов меню не должны содержать ни логики, ни других методов, занимающихся токенами, ссылками и их хранением.

    Изучите методы random (например, randint), и библиотеку string, тогда не придется сочинять велосипеды со списками чисел.

    Изучите методы строк (join, например), тогда не придется сочинять костыли с удалением кавычек и запятых.

    Это так, по верхам.

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

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

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Эээ… чтобы потестировать библиотеку, надо подключить тестируемую библиотеку. Чтобы подключить тестируемую библиотеку, надо… надо ее собрать и подключить.
    Ну, типа pip install /test/my_test_lib.whl или что-то такое.
    Ответ написан
  • Как вывести время Оли?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Наверное, как-то так
    import datetime
    utc_delta= {
        'Москва' : 3,
        'Питер' : 3,
        'Самара' : 4,
        'Новосибирск' : 7,
        'Омск' : 6,
        'Пермь' : 5
    }
    friends={
        'Максим' : 'Омск',
        'Олег' : 'Питер',
        'Оля' : 'Москва',
        'Коля' : 'Пермь',
        'Ваня' : 'Новосибирск',
        'Толя' : 'Самара'
    }
    
    
    def time_friends(name: str):
        return datetime.datetime.utcnow() + datetime.timedelta(hours=utc_delta[friends[name]])
    
    
    print(time_friends('Оля'))
    Ответ написан
    Комментировать
  • Не находит библиотеку pango-1.0-0, как решить?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Хотя сам по себе python не боится кириллицы в путях, но не все библиотеки и не все утилиты с ним дружат.
    Поэтому я бы советовал попробовать исключить кириллицу из путей (в идеале установить всё в корень диска в папку с латинским именем).

    Ну и главное - ознакомьтесь с виртуальными окружениями и правильно их используйте. Это снимет 99% проблем с импортом библиотек. Еще один процент останется на совпадение имен библиотек и объектов из библиотек с именами ваших самописных модулей и объектов.
    Ответ написан
    Комментировать
  • В чем заключается ошибка в коде python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Это типичная ошибка тех, кто не учил язык. Попробуйте так:
    if self.s1 in [color1, color2]:
    Ответ написан
    4 комментария