Задать вопрос
  • Как проверить есть ли элемент в списке кортежей?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    a = [('Илья',), ('Машка',)]
    b = ('Илья',)
    print(b in a)


    Ладно, это была шутка.
    Вот корректный код:
    a = [('Илья',), ('Машка',)]
    b = 'Илья'
    print(any(b in c for c in a))
    Ответ написан
    Комментировать
  • Какие библиотеки использовать для мессенджера на python?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    А это зависит от того, что именно хочет проверить преподаватель.

    Если создание интерфейса или фронтэнда - возьмите какой-нибудь IRC и напишите к его клиенту обертку любым удобным вам способом.

    Если создание собственно бэкенд - сделайте что-то совсем простое, буквально «на коленке», по тьюториалу какому-нибудь к Django, типа такого.
    Ответ написан
    3 комментария
  • Какой выбрать монитор от 120гц для Macbook Pro 14?

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

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

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

    В общем, вашему коду нужен рефакторинг, а уж после этого, если останется ошибка, ее можно будет проще локализовать и исправить.
    Ответ написан
    4 комментария
  • Как подсчитать количество значений в json файле?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    В вашем примере невалидный json.
    Ключи должны быть уникальны. В случае, если вы сделаете валидный json, вопрос сводится к поиску ключа по его значению в словаре, таких вопросов задавалось множество.
    Альтернатива - сделать список, содержащий словари типа {‘name’: ‘value’}, в таком случае вопрос решается простым перебором списка.
    Ответ написан
    3 комментария
  • Где баг в приложенном коде?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Проблема в функции find_radius
    для if choice == 0: не возвращается return radius, поэтому функция возвращает None
    Можно сделать
    так
    def find_radius(enemies):
        maximum = max(enemies[0].x, enemies[1].x, enemies[2].x)
        choice = random.randrange(0, 5)
        if maximum < display_w:
            radius = display_w
            if radius - maximum < 50:
                radius += 150
        else:
            radius = maximum
    
        if choice == 0:
            radius += random.randrange(10, 15)
        else:
            radius += random.randrange(200, 350)
        return radius

    тогда функция всегда должна возвращать int и ошибка возникать не должна.
    Ответ написан
    Комментировать
  • Какие книги либо материалы можно использовать для изучения фреймворка aiogram?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Вам - никакие. Вы их не поймете, так как недавно изучаете python, а для понимания работы асинхронного кода python вам потребуется много опыта.
    Когда вы станете готов для понимания aiogram, вы сами поймёте, какую литературу надо для этого читать.
    Ответ написан
    Комментировать
  • Как правильно склонять названия оканчивающиеся на букву "о" с помощью pymorphy2?

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

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    вы пытаетесь к строке аппендить объект как к списку.
    Чтобы избежать этой ошибки, используйте
    row_data = [currentbrand]
    Ответ написан
    Комментировать
  • Как называются два бита?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Вы ошибаетесь, 8 бит это октет. А байт может быть равен по размеру октету, а может и не быть равен.
    Важно другое: современный байт принято делать равным октету потому, что так удобно адресовать память. Побитно это неудобно. И по парам бит неудобно.

    Бывают особые случаи, когда определенный фрагмент памяти используется побитно для кодирования логических состояний параметров управляемой системы. В таком случае можно встретить выражения наподобие «старшая пара бит данного байта». Или «младший бит данного байта». И в таком духе.

    Если вам нужно, вы можете сделать свою систему, со своим процессором, способным за одну операцию обрабатывать пару бит, и своим контроллером памяти, и реализующим адресацию байтами размером в пару бит. Важно, что это всё равно будет байт, только маленький и неудобный.
    Ответ написан
    2 комментария
  • Как извлечь нужный текст из строки Python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    s = "[Win32Window(hWnd=123456)]"
    
    for n, i in enumerate([')', 'hWnd=']):
        s = s.split(i)[n]
    if s.isdigit():
        print(s)
    else:
        print("Цифры не найдены")


    А еще любопытный вариант:
    s = "[Win32Window(hWnd=123456)]"
    print(s[18:-2])
    Ответ написан
    Комментировать
  • Где учить Python программисту с небольшим опытом?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Для учёбы сделай локальные программы «калькулятор», игра «быки и коровы», текстовый редактор.
    Потом делаешь то же самое, но в виде web-приложений, многопользовательское, многозадачное, распределенное, микросервисное, контейнированное, с подключением к БД, аутентификацией, безопасностью и 100% покрытием тестами.

    Книга как была классикой так и остается - М.Лутц "Изучаем Python". Ее надо просто проработать, и Python станет понятен (кроме асинхронности, ее разберете потом отдельно). Это не быстро, книга большая.
    spoiler
    Если эта книга покажется скучной, нудной, затянутой и полной воды, вам не надо заниматься программированием.


    Но есть важный нюанс:
    язык программирования - это как лопата у агронома. Лопатой надо владеть? Надо. Достаточно ли агроному лопаты? Нет. Ему надо знать и уметь много чего - сорта, почвы, технологии, химию, а лопатой он делает только некоторую часть операций.
    Программисту надо знать в той или иной степени информатику, алгоритмы, структуры данных, языки программирования, базовые библиотеки, БД и СУБД, API, ООП, фреймворки, сети, протоколы, ИБ, тестирование (в части, касающейся программеров), контейнеры и их развертывание, Git, да много чего. Язык там не на первом месте.

    Из более-менее полезного поищи на ютьюбе «алгоритмы и структуры на Python» от МФТИ, там десятка полтора лекций Хирьянова. Но это лучше после книги «Изучаем Python» М.Лутца.
    Ответ написан
    3 комментария
  • Как организовать БД?

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

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

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

    Во втором варианте вы по любому «твиттеру» или «инстаграму» получаете id «человека», а потом фильтруете всех «твиттеров» по полю id "человека" = найденному id "человека" и отдельно всех «инстаграмов» по их полю id "человека" = найденному id "человека". Выходит несколько дольше, но возможно сущность «человек» будет полезна еще в каких-то вопросах.
    Ответ написан
    Комментировать
  • Почему в пайчарм когда пытаешься написать новую строку она начинается не с нужного места?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Это сильно зависит от того, в каком файле вы это пишете. Если это - текстовый файл, будет обычное поведение текстового редактора. Если это - модуль python, будет поведение, необходимое для соблюдения некоторых особенностей python вообще и PEP8 в частности. Поэтому, вероятно, если пытаться писать в python-модуле как в обычном текстовом редакторе, pycharm будет пытаться соблюдать правила пунктуации и орфографии python и рекомендации PEP8 и получится примерно то, что получилось.
    Ответ написан
    Комментировать
  • Как исправить ошибку `metadata-generation-failed` при установки библиотеки?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Собирать numpy занятие неблагодарное.
    Сначала обновите pip pip install --upgrade pip и затем поставьте numpy через wheels, потом ставьте остальное.
    Если не взлетит, попробуйте поставить версию python помладше (в виртуальное окружение, например 3.6), там тоже обновите pip и пробуйте ставить numpy и затем своё приложение.
    Ответ написан
    1 комментарий
  • Как сформировать этот код в цикл?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Вам необходимо ознакомиться с темой «структуры данных», в частности - словари и списки.
    Также вам надо изучить вопрос «итерация».
    Без этого двигаться дальше бессмысленно.
    response = {'data': ['a', 'b', 'c']}
    sellprices = [response['data'][i] for i in range(3)]
    print(sellprices)
    Ответ написан
    6 комментариев
  • Как правильно переводить названия сущностей по соглашению о написании кода?

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

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

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

    Возможно, вам следует разделить код на функции - одна готовит запрос, другая отправляет запрос и возвращает текст ответа, третья разбирает текст ответа.
    Тогда можно отлаживать каждую по-отдельности и найти, где проблема.
    Ответ написан
  • Как сделать проверку символов с возвратом на строку кода?

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

    Например, сделать функцию проверки, скажем check_answer, которая принимает строку ответа и возвращает логическое значение (если всё хорошо, то True, иначе False).
    Затем сделать конструкцию
    while not check_answer(otvet):
        otvet = input()

    и пока check_answer не вернёт True, этот цикл будет повторяться.

    Однако, в вашем коде есть еще много существенных недостатков, которые сильно затруднят вам жизнь.
    • Во-первых, это нумерованные переменные. Вместо них удобно использовать кортеж, список или словарь. Такие структуры можно перебирать в цикле (итерировать) и каждый следующий элемент обрабатывать одним и тем же набором функций.
    • Кроме того, код хорошо бы разделить на функции, например так: если код делает «то, это и вот это», то у вас должны появиться функции «делай то», «делай это», «делай вот это» и еще функция «выполнить программу», изнутри которой находятся вызовы остальных функций и внутри которой каждая функция получает и возвращает в следующие функции обрабатываемые данные и результаты обработки.

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

    С другой стороны,
    python позволяет всё плотненько скомкать чуть не до пары длиннющих нечитаемых строк, но так делать вам пока не надо.
    Ответ написан
    3 комментария