• Как преобразовать текст в таблицу на 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 комментария
  • Ошибка в консоли что делать?

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

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

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Вы должны делать всё наоборот:
    Вам надо работать только в модуле main, и в него импортировать в т.ч. функции из других модулей. Тогда импортированным функциям при их вызове из кода main станут доступны необходимые переменные.
    Лучше всего делать функции так, чтобы они явно получали в параметрах все необходимые им переменные и явно возвращали все результаты через return. Тогда будет меньше риска, что где-то что-то будет происходить «само собой».
    Ответ написан
    Комментировать
  • Как запустить Selenium+Opera?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Ваш код пытается использовать webdriver-manager, который должен по-идее скачивать бинарник webdriver, соответствующий вашей версии браузера. Наверняка, webdriver-manager поддерживает только определенные версии браузеров, не вообще все.

    Вам надо установить в системе ту версию браузера, которую webdriver-manager в принципе может скачать (как сказано в ошибке, начиная с в.111).
    Либо надо переделать код, убрав работу с webdriver-manager и сделав «по классике», глазами самостоятельно определить версию своего браузера, руками скачать соответствующий выявленной версии браузера бинарник webdriver, положив его в удобное вам место и указав при вызове webdriver в своем коде, где искать бинарник. Это делается через параметры options обычно, почитайте документацию к своей версии selenium.
    Ответ написан
    1 комментарий
  • Как можно отправить трейд не получив ничего в замен?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Если такой обмен совершить в принципе возможно, вам надо изучить steam API и понять, как именно в нем совершить такое действие.

    Возможны два варианта:
    1. Вместо обмена в API есть специальная команда «отдать», либо в виде специального параметра к команде обмена.
    2. Возможно, существует специальная шмотка типа «ничего», которую можно получить при отдаче своей обычной шмотки.

    Когда вы поймете, как именно совершается такая операция на уровне API, можно двигаться дальше.

    Если есть специальная шмотка «ничто», то и надо её указывать вместо None, проблема решится.

    Если же есть специальная команда «отдать», то её и надо использовать (возможно, реализовать в вашем коде).

    Вопрос, по-сути, не относится к особенностям языка Python, тут дело именно в steam.
    Ответ написан
    Комментировать
  • Построение нейро-нечетких сетей?

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

    Иначе это никому не нужная писанина в стол.
    Ответ написан
    Комментировать
  • Как сделать что бы бот отправлял следующую строчку из файла?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Самый простой вариант - сложить все строки в список и выдергивать их оттуда методом .pop(), отлавливая соответствующий exception об отсутствии элементов в списке. Недостатки:
    • при перезагрузке бота всё начнется сначала.
    • всё это будет работать только для одного клиента, если их станет одновременно несколько, всё запутается.

    Для работы с несколькими пользователями надо делать через счетчик и для каждого пользователя свой счетчик заводить и хранить его вне кода, каждый раз меняя. Или пересохранять в файл типа json, или хранить в БД. С файлом проблема с одновременным доступом, надо затевать очередь и асинхронный доступ.
    Лучше в БД, это универсальней и надежней, но несколько замороченнее. Зато там можно всё хранить, и ваши строки, и всех пользователей со всеми их атрибутами.
    Ответ написан
    Комментировать
  • Pycharm виртуальное окружение?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    А у вас проблема со скачиванием? Трафик платный?
    Если проблема именно в скачивании, можно положить все необходимые библиотеки в виде wheels в папочку и оттуда устанавливать каждый раз, изучите параметры команды pip.

    С использованием одной и той же УСТАНОВЛЕННОЙ библиотеки есть проблема.
    Представьте, что у вас на библиотеке 3-й версии построено 5 программ. Появилась 4-я версия, и вы решили обновить версию библиотеки для последней разрабатываемой программы - упс! Поломались все 5 программ, каждая - по-своему.

    Каждый проект должен иметь собственное окружение с собственными версиями библиотек и самого Python.

    Переиспользовать установленные библиотеки рискованно, поэтому для этого специально никто не заморачивается.
    Ответ написан
    Комментировать