Задать вопрос
  • Syntax Error ошибка что делать, как чинить?

    idegree
    @idegree
    Senior Workaround Developer
    У вас же в ошибке все написано: SyntaxError: 'await' outside function.
    Нельзя использовать ключевое слово await вне ассинхронной функции.

    async def myfunc():
        await my_async_func()
    Ответ написан
    Комментировать
  • Почему float округляет до целого, не воспринимая экспоненты?

    Vindicar
    @Vindicar
    RTFM!
    float(i[0])
    Ты выбираешь нулевой (т.е. начальный) символ строки, и только его превращаешь в число, игнорируя остальные.
    Как следствие, у тебя '5.615780770566875e-5' обрезается до '5'.
    Как чаще всего и бывает, компьютер делает именно то, что ты просишь, а не то, что ты хочешь.
    Ответ написан
    2 комментария
  • Хватит ли бесплатной версии PyCharm для изучения и построения сайта на Django?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Можно хоть в консоли (а если конкретно - в редакторах vim/neovim), хоть в блокноте.
    Про версия просто позволяет ускорить создание нового проекта (сама активирует окружение, скачивает нужные библиотеки и создает новый шаблон), имеет автокомплит специфических для джанго вещей, а так-же имеет поддержку синтаксиса js/html.
    Собственно, из-за первых двух пунктов, использовать про версию как раз не рекомендуется - чтобы вы в первую очередь полагались не на умную программу а на свои знания.
    Ответ написан
    2 комментария
  • Вывести все строки, не начинающиеся на решетку python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Элементарно: читать файл построчно, проверять в каждой строке наличие символа #, при наличии брать подстроку от начала строки до символа # и выводить её.
    Ответ написан
    Комментировать
  • Как добавить шанс на появление числа?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    import random
    random.choices([10, 22], weights=[0.37, 0.63], k=1)


    https://docs.python.org/3/library/random.html#rand...
    Ответ написан
    1 комментарий
  • Как сделать музыку на сайте так же как в вк?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Создаю свой мессенджер, задача такова что нужно сделать список абсолютно всех мелодий которые есть в мире, так же как в вк, как это можно реализовать?
    Так, давайте прикинем что нам нужно для реализации. Программная часть собственно нас не сильно интересует, так как на фоне прочих затрат найм какого-нибудь Линуса Торвальдса на пару месяцев вообще теряется в общей сумме.

    1) Хранилище. По примерным оценкам в мире в цифровом виде около 500 000 000 оригинальных музыкальных композиций. Учитывая ремиксы и каверы - можно смело брать миллиард. Средний вес композиции среднего качества - 5 Мб. То есть порядка 5 петабайт, если хранить не в лучшем качестве. Учитывая что это должно иметь какое-то резервное хранение (у нас тут серьезный сервис все-таки), умножаем на 2 (10 петабайт). При стоимости около 2 центов за гиг в месяц, 10 000 000 Гб * $0,02 = $200 000 в месяц хранение. Ну, бюджетненько в целом.

    2) БД, которая хранит данные обо всех этих композициях. Стоимость хранения будет поменьше, но думаю к 20-50К все равно где-то выйдет.

    3) Другой вопрос - где брать эти данные, так как не все музыкальные файлы содержат полное описание композиции. На перебор 1 миллиарда записей и сортировки их по жанрам, альбомам, исполнителям, дате выпуска и т.д. уйдет некоторое время. Допустим 50% композиций будут иметь нормальное описание, остается все те же 500 миллионов композиций на обработку. Пусть на каждую понадобится 2 минуты работы, внести данные в поля (хотя их еще как-то найти надо, но допустим), тогда получим 1 миллиард минут. Это 1900 лет работы, или 16 666 667 часов. Час работы самого дешевого индуса - 3 бакса/час. 16 миллионов * 3 - давайте округлим до 45 миллионов. Даже если сократить этот пункт в 10 раз - выйдет под 4 миллиона. Рабский труд сегодня дорог как никогда...

    4) Теперь платформа которая будет всем этим ворочать, так как у нас в сервисе должны же какие-то пользователи завестись вроде. Ну, на сервера можно смело отложить небольшую сумму, тоже где-то 20-30К, для начала сойдет.

    5) Прочие накладные расходы, такие как билеты на самолет до Америки с целью договориться где будет стоять ваш датацентр и прочие мелочи мы пока в бюджет не вкладываем, так как там уже инвесторы подтянутся, и смысла заморачиваться с мелочевкой нету. Так же оставляем за кадром вопросы лицензий и отчислений авторам, так как с этим возиться лень, как-нибудь решим потом.

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

    По итогу на год:
    $200 000 * 12 = $2 400 000 хранилище
    $20 000 * 12 = $240 000 бд
    $20 000 * 12 = $240 000 сервера приложения
    $4 000 000 работы
    Итого: чуть меньше 7 миллионов баксов.
    Ответ написан
    2 комментария
  • Как преобразовать property в dict (Python)?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    event_json = HttpRequest.read()
    Ответ написан
    8 комментариев
  • Python, проблема вывода значения списка (не могу объяснить точнее в чем проблема, я pre-pre-pre junior developer)?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Вопрос кажется простым. Но ответ потребует объяснения большого количества разнообразных принципов и может превратиться в целый цикл лекций.
    Набросаем путь освоения:
    1. Объектная модель языка Python
    2. Структуры данных вообще и языка Python в частности
    3. ООП вообще и понятие классов, экземпляров, атрибутов, методов, инициализации экземпляров в частности.
    4. Реализация конкретного класса User в конкретной версии библиотеки.
    5. Осмысление места, роли этого класса, его атрибутов, причин такой реализации, последствий для программирования бота;
    6. Вероятно, базы данных, их связь с классами; поля БД, их связь с атрибутами класса;
    7. Понимание, как всё это в целом работает, какие пути есть для получения искомых сведений и какие последствия могут возникнуть для работы бота, канала, Телеграма и его пользователей при работе с этими сведениями.


    Вот вам пример простейшей реализации:
    class User:
        def __init__(self, a, b, c):
            self.a = a
            self.b = b
            self.c = c
    
        def __repr__(self):
            return f'a:{self.a}\tb:{self.b}\tc:{self.c}'
    
    users = [User(1, 2, 3), User(('z', 'y', 'x'), 5, 6), User('a', 'b', None)]
    
    for user in users:
        print(user)
        print(f'a:{user.a}')
    print(users[1].a)
    print(users[2].c)

    из него можно извлечь некоторые сведения для вас.

    Но вовсе не обязательно, что в вашем классе User всё реализовано так просто. Надо посмотреть на него глазами.
    Ответ написан
    Комментировать
  • Как составить алгоритм выбора монет из ящика на Python?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Это задача размена монет. Решается динамическим программированием. Вот статья на вики. Там даже код есть, похоже, на питоне. Правда, оно там только количество монет считает. Чтобы найти и сами монеты, вам надо завести еще один двумерный массив и везде, где считается массив m запоминать, а каким именно действием текущее значение набирается (или взять текущую монету, или пропустить). В конце вам надо будет от позиции m[-1][-1] циклом while выполнять записанные ранее действия (или пропустить текущую монету и уменьшить r на 1, или взять и тогда уменьшить r на ее размер).
    Ответ написан
    Комментировать
  • Почему игра на pygame тормозит?

    @Span4ev Автор вопроса
    Разобрадся. Для тех, кто столкнётся с той же ситуацией, вот пояснение:

    Медленный здесь только я, потому что функцию создания пришельцев
    engine.create_aliens_army(settings, screen, ship, aliens) я запускал в основном цикле While, из-за чего все остальные циклы выполнялись каждую наносекунду. Я перенёс вызов создания армии из основного цикла и всё стало хорошо.
    Следите за тем, где вы вызываете методы.
    Ответ написан
    3 комментария
  • Как достать строку из листа?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Во-первых, не советую использовать слово list как имя переменной - это имя используется как имя встроенного типа «список».
    Во-вторых, список это и есть в некотором роде массив, к элементам которого можно обращаться по индексу (именно так, как вы показали - по номеру элемента в скобках). Нет смысла перемещать его содержимое в другой массив, если только это не условие задачи или обусловлено какой-то очень специфической задачей (для использования математических и статистических пакетов).. Задачи тут не решают.
    В-третьих, очень рекомендую вначале изучить структуры вообще и начала языка Python в частности, а потом браться за вот это вот всё. Сэкономит вам время.
    Ответ написан
    Комментировать
  • UnboundLocalError: local variable 'metawallet' referenced before assignment. Что делать?

    Vindicar
    @Vindicar
    RTFM!
    Если в result нет ни одной строки, какое значение будет у metawallet?
    Ответ написан
  • Как написать юнит тест для программы, которая использует input()?

    @Akela_wolf
    Extreme Programmer
    Юнит-тестирование это про разделение функций на минимально возможные кусочки, чтобы их было возможно протестировать минимально возможным тестом. А для этого каждая функция должна делать что-то одно. У вас же функция занимается следующими вещами:
    1. Ведет диалог с пользователем
    2. Проверяет корректность введенных данных по своим правилам
    3. Обращается к внешнему сервису (причем какой-то апи-ключ прямо в коде - ужас-ужас. А если этот код выкладывать в гитхаб?)
    4. Выводит полученный от внешнего сервиса результат на экран

    Разделим это на 4 функции и увидим следующее:
    1. Функция ввода номера пользователем. Входных параметров нет, выходные - номер. Тестировать не имеет особого смысла.
    2. Функция валидации. Входной параметр - номер, выходной - один из кодов (enum): все хорошо, некорректный регион, некорректный номер. Функция чистая (то есть результат её работы зависит только от аргумента, побочных эффектов нет), тестами накрывается легко и просто.
    3. Функция запроса данных у стороннего сервиса. Входной параметр - номер, выходной - какие-то данные. Тестировать сложно т.к. есть внешний сервис. И может быть не особо нужно, т.к. юнит-тест тут не напишешь. Функция как-то сложной логики не имеет, а внешний сервис нам неподконтролен. В частности, он в любой момент может начать отвечать 404 или каким-нибудь бредом. Поэтому тестировать эту функцию мы можем только имитируя поведение внешнего сервиса каким-то нашим моком (использовать тот же WireMock, например)
    4. Функция вывода результата на экран. Входной параметр - данные, выходных нет. Аналогично функции ввода номера тестировать отдельно не имеет смысла.

    Таким образом, вся бизнес-логика программы сосредоточена в функции валидации и внешнем сервисе. Внешний сервис, как я уже сказал, нам неподконтролен. Функцию валидации мы можем накрыть юнит-тестом. Остальное - если хочется, то можно накрыть end-to-end тестом, либо не покрывать вообще.
    Ответ написан
    Комментировать
  • Можно вставить microsd карту в sd разъем?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Нужен такой переходник:620a9eca995ff326325683.jpeg
    Как правило, они продаются вместе с micro-sd карточками. Если такого у вас нет, поспрашивайте у знакомых или в магазине. Цена такого девайса 5-7 копеек, но вря тли они продаются отдельно. В противном случае можно за бакс, или два купить sd-карточку с переходником.
    Ответ написан
    Комментировать
  • Почему не работает поиск уникального числа в списке?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Попробуйте по-другому. Получите уникальные элементы списка посредством множества (set) и затем посредством метода .count() для списка посчитайте, сколько раз встречается каждый уникальный элемент из множества в вашем списке. Элементы, для которых .count вернёт 1, и есть уникальные.
    def print_unic_elements(arr):
        [print(i) for i in set(arr) if arr.count(i) == 1]
    Ответ написан
  • Что такое "типы данных" в Python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Все типы данных - это классы, но не все классы - это типы данных. Хотя классы - это типы=) но не буду вас путать.
    "map, range, срез" - это не типы данных.
    Полагаю в том вашем вопросе од типами жанных имеют в виду простые типы вроде строк, чисел с плавающей точкой, целых чисел и даже комплЕксных.
    Кортежи (tuple) и словари (dict) - это уже структуры данных, коллекции... как угодно. Да, технически это тоже классы и в каком-то смысле их можно назвать типами, но все эти терминологические дебри вам ни к чему.
    Просто считайте типами данных атомарные значения простых типов. Если к вам докопаются при таком понимании, то надо таких слать=).
    Дальше интереснее. range, к примеру, это класс, инстанс которого "умеет" делать генератор арифметических последовательностей. Вот это вот слово "умеет" связано с питоновским понятием протоколов. К примеру, если к объекту можно обратиться по индексу, значит он поддерживает соответствующий протокол __getitem__. Если объект поддерживает срезы, то в этот метод можно подать специальный объект - инстанс slice. Этот инстанс просто несёт три параметра среза (начало, конец и шаг), а как его будет применять объект - это на откуп программисту.

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

    Просто доверьтесь одному из учебников и не пытайтесь перепрыгнуть через голову.
    Ответ написан
    3 комментария
  • Оцените тестовое задание?

    SoreMix
    @SoreMix
    yellow
    Самого задания не будет? Оценивать то нечего толком. В описании куча грамматических ошибок. На этом можно закончить, это уже говорит о плохом подходе. Вот это вообще без комментариев.
    61eff88f8b71b313754399.png

    Много коммитов с изменением ридми, можно ведь один раз написать грамотно и не редачить по 10 (буквально) раз. Честно говоря, уже на этом бы моменте даже не стал дальше смотреть. Сама "документация" написана тожн абсолютно никак.

    SQL запросы составлены неверно. Нейминги переменных разные. Некоторые переменные вообще непонятно зачем существуют, как, например, error в методе авторизации.
    https://github.com/chigan0/apptrix.test/blob/main/...

    `utils` откуда-то слизаны, там везде почему-то табы, когда в остальном коде пробелы.
    Красиво
    61effb278a845424859968.png

    Английские слова точно так же написаны с ошибками.

    Дока не соответствует коду.
    ?lastname фильтрация по фамилии

    В коде:
    "last_name" in request.args

    JS разработкой не занимаюсь, но первый раз вижу, чтобы форму формировали не через тег form и/или с использованием ajax, а просто пложив инпуты на страницу, без атрибута name и потом собрав их руками в formdata, и через fetch бросить на сервер.

    Лишние комментарии в коде, остатки от каких-то тестов. Отступы скачут. И так далее И так далее И так далее. И всё это до теста главного функционала приложения
    Ответ написан
    Комментировать
  • Оцените тестовое задание?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Потому что все очень плохо, буквально в каждой строчке кода. Полное несоблюдение PEP8 везде, где только можно.
    main.py и settings.py принято держать в корне проекта.
    Хранить какие либо ключи и/или пароли прямо в .py файле и тем более заливать это в github - отвратительная практика.

    Структура проекта отсутствует в принципе:
    - Почему у тебя в папке models конфигурация БД?
    - Почему у тебя параметр подключения к БД прямо в файле, где происходит подключение, а не в конфиге?
    - Зачем вообще файл create_database.py?

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

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Ответ написан
    Комментировать
  • Как из содержимого строки сделать название переменной?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Комментировать