Задать вопрос
Профиль пользователя заблокирован сроком с 1 апреля 2025 г. и навсегда по причине: подозрительная активность
  • Питание Мак бука от сети?

    modelair
    @modelair
    unsocial
    Не совсем это верно. Macbook использует батарею даже при питании от сети, потому что батарея обеспечивает пиковое напряжение процессору, которое блок питания не даст. Вытащите батарею и ваш ноутбук будет работать на 1ггц с 20 фпс. Батарея - важная часть лаптопа. Как ни крути, батарея всегда "деградирует"
    Ответ написан
    1 комментарий
  • Перестал заряжаться аккумулятор на ноутбуке после полной разрядки, в чем может быть проблема?

    anthtml
    @anthtml
    Системный администратор программист радиолюбитель
    Если разрядился в 0, а потом очень долго лежал без зарядки, то имеется вероятность что заряд аккумуляторов ушел ниже порога заряда контроллера. И тут либо менять аккум, если он уже был подуставший и ему лет 5, либо отнести в сервис чтобы принудительно зарядили до рабочего напряжения и потренировали.
    Ответ написан
    1 комментарий
  • Как работает asyncio.sleep?

    Vindicar
    @Vindicar
    RTFM!
    Идея простая.
    Асинхронные приложения - это набор пар "операция - обработчик", где операция - это некоторый длительный процесс (скажем, вводы/вывод), который не требует постоянного внимания со стороны кода. Когда операция завершается, выполняется её обработчик. Этот обработчик может планировать другие операции, и так далее.

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

    Соответственно, await-вызов сохраняет текущий контекст корутины, и планирует новую длительную операцию. Какую - зависит от того, что идёт после await. Эта операция представлена тем или иными awiatable значением (Future, Task и т.п.).

    Рабочий цикл (loop, его также называют реактор) просто проверяет текущие операции. Как только одна из них завершилась, он выполняет её обработчик. А потом продолжает проверять остальные активные операции.

    Ключевой момент - выполняет обработчик, а только потом проверяет остальные операции. Т.е. если обработчик планирует операцию через await - это не проблема, она будет выполняться наравне с остальными. А вот если обработчик просто делает что-то длительное, он не возвращает управление циклу, и не даёт выполняться остальным операциям.

    asyncio.sleep() планирует ничего не делающую операцию, которая завершится успехом через заданное время. Поэтому её выполнение не мешает циклу-реактору. Просто ещё один await вызов, который приостанавливает текущую корутину и возвращает управление реактору.

    time.sleep() ничего не знает о реакторе и асинхронных операциях. Она приостанавливает выполнение обработчика, не прерывая его и не отдавая контроль реактору. Поэтому на время time.sleep() (или любой длительной синхронной операции) спит вся программа.
    Ответ написан
    5 комментариев
  • Как быстро получить случайное слово из файла на 12 ГиБ?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Какая максимальная длина слова? Ну допустим 20 символов.

    Не в курсе насчет питона. Но я-бы убрал фактор плавающей длины. Например я-бы разбил
    этот 12Гб файл на 20 файлов. Допустим в первом будут лежать все слова длиной в 1 символ.
    Во втором 2 символа. И так далее.

    Тогда формула будет такая. Считаем распределение слов по этим 20 файлам. Там гистограмма получается.
    Типа допустим 5% на 8 символьные слова. 8% на 9 символьные и так далее. Выбираем случайный файл
    ну как-бы учитывая "перекос". И потом уже внутри этого файла просто ищем случайное слово. Будет
    быстро потому-что слова уже имеют фиксированную длину.
    Ответ написан
    5 комментариев
  • Написан сайт, Прогноз погоды, при запуске почти ничего не работает, ошибки не выдает, Можете помочь?

    Stalker_RED
    @Stalker_RED
    Ошибки не выдает потому, что у вас такой стиль - прятать их под ковер.
    То есть у вас есть там типа проврека на 404, но другие стсаусы не проверяются от слова совсем.
    Напишите там сразу после нее (или вместо нее) как нибудь так
    if (json.cod != 200) {
      console.log(json);
      throw new Error(json.cod + ' ' + json.message);
    }

    и сразу станет понятнее что происходит.
    Ответ написан
    1 комментарий
  • Ошибки в json python?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Проще всего опробовать загрузить такой битый файл кабудто это yaml. Любой Json-файл будет валидным yaml-файлом, но у формата yaml гораздо более гибкий парсер, менее требовательный к синтаксису.
    wrong_json = '{"name":"Максимальная дальность","unit":cH,"value":"invalid_key"}'
    print(yaml.load(wrong_json, yaml.BaseLoader))

    Загрузит нормально, но нужно проверять на реальных данных, могут возникнуть неожиданные побочные эффекты.
    Ответ написан
  • Что нужно знать чтоб стать Джуном в бэкэнде python?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    То же самое, что и раньше - Лутца вплоть до 37-й главы и руководство Django. Но надо понимать, что конкуренция среди джунов огромная, так что за место придётся бороться с людьми, которые могут отлично знать SQL, теорию реляционных баз данных, принципы работы сетей, алгоритмы и шаблоны проектирования, могут свободно чувствовать себя в консоли Linux, могут разбираться в виртуализации, уметь тонко настраивать сервера, разбираться в железе и т.д. и т.п.
    Ответ написан
    1 комментарий
  • Использование sql lite 3 и telebot одновременно несколькими людьми, будет ли ошибка?

    @twistfire92
    Python backend developer
    Если используете pytelegrambotapi (telebot), то с помощью register_next_step_handler вполне несложно собрать разом нужные данные и потом одним запросом записать их в БД. пользователи при этом друг другу не помешают. У каждого пользователя будет своя запись в БД
    Ответ написан
    Комментировать
  • Использование sql lite 3 и telebot одновременно несколькими людьми, будет ли ошибка?

    Нужно использовать машину состояний и redis для предварительного сбора всех данных
    когда получены корректные данные, тогда записывать их в бд. это нужно для того, чтобы не писать отдельно в бд имя, потом дату и проч. а иначе, если пользователь еще не закончил ввод и ушел, то в базе будут негодные данные
    для бота, где не сильно важна скорость можно использовать обычный модуль sqlite3. если не создавать новые конекты на каждую запись в базу, то этот модуль будет последовательно записывать в БД и так замедлять работу
    Для сильно нагруженных ботов нужно использовать асинхронную библиотеку бота aiogram и асинхронный модуль aiosqlite https://pypi.org/project/aiosqlite/
    Ответ написан
    Комментировать
  • Почему pandas выдает предупреждение?

    Maksim_64
    @Maksim_64
    Data Analyst
    Довольно известное сообщение о предупреждении. На самом деле сейчас ведется разработка и в будущих версиях pandas это поведение должно принять более последовательный характер, потому что на данный момент оно непоследовательно. Что бы не повторять материал из свежей pydata. Вот ссылка Видео на видео где один из текущих разработчиков pandas объясняет все в деталях с примерами где будет это предупреждение а где нет почему оно возникает что с этим делать сейчас и что будет дальше.

    Если же в двух словах (Что плохо для данного вопроса, он глубже чем кажется), то предупреждение предупреждает о том что в вашем во фрейме из которого получен подсет данных могут произойти изменения при изменении значения в подсете.

    Но тема более глубокая и там есть код где это произойдет и где нет. Так что рекомендую видео.
    Ответ написан
    Комментировать
  • Какие материалы посоветуете изучать начинающему бэкенд-разработчику на Python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Для освоения языка стоит прочитать "Изучаем Python" Лутца. Для освоения фреймворка руководство Django. HTML и CSS можно изучить по руководствам MDN. С этим минимумом уже можно делать что-то простое. Дальше стоит углубиться в SQL и теорию реляционных баз данных. Хороший старт для этого - "SQL для простых смертных" Граббера. Полезным будет понимание принципов работы сетей в целом и Web в частности, в этой области общепризнан для начинающих учебник Олиферов. А курсы не нужны.
    Ответ написан
    1 комментарий
  • У меня в программе ошибка не считает последную функцию не тот ответ как исправить?

    ZERGeich
    @ZERGeich
    Во-первых, не использовать sum.
    Во-вторых, в первой функции name не вернётся примерно никогда.
    В-третьих, результат неплохо бы обернуть в int() прежде чем сравнивать с цифрами, иначе условие не выполняется.
    В-четвёртых, привыкайте оборачивать отдельные условия в скобки, и читабельность повысится и ошибки будут сразу заметными. Например как-то так:
    if ((int(clas) == 9) and (int(su) > 180)) or ((int(clas) == 10) and (int(su) > 200)) or ((int(clas) == 11) and (int(su) > 220)):
    Ответ написан
    Комментировать
  • У меня в программе ошибка не считает последную функцию не тот ответ как исправить?

    Vindicar
    @Vindicar
    RTFM!
    Впридачу ко всему остальному выше:
    return clas 
    return name

    Отработает только первый return.
    Ответ написан
    Комментировать
  • Как корректно разбить строку на подстроки по разделителю на множестве строк (по датасету)?

    erge
    @erge Автор вопроса
    Примус починяю
    Необходимо использовать LATERAL (inline-представление), как посоветовал Максим Y
    Но, до версии 12С это было типа недокументированной "фичей" и чтобы ее включить необходимо выполнить:
    alter session set events '22829 trace name context forever';


    Попробовал в 11g (на dbfiddle.uk) и сработало!

    https://dbfiddle.uk/?rdbms=oracle_11.2&fiddle=3aa5...

    PS: попробовал у себя на 9i и.... тоже сработало! ))

    alter session set events '22829 trace name context forever';
    
    WITH 
      test AS (
    SELECT 'проул.' as code, 'проул.|пр-к|' as str FROM dual UNION
    SELECT 'ул.' as code, 'ул.|улица|ул-ца|' as str FROM dual UNION
    SELECT 'пер.' as code, 'пер.|переулок|' as str FROM dual UNION
    SELECT 'кв-л' as code, 'кв-л|квартал|' as str FROM dual UNION
    SELECT 'линия' as code, 'линия|' as str FROM dual UNION
    SELECT 'парк' as code, 'парк|' as str FROM dual UNION
    SELECT 'рзд' as code, 'рзд|разъезд|' as str FROM dual UNION
    SELECT 'сад' as code, 'Сад|' as str FROM dual UNION
    SELECT 'тракт' as code, 'тракт|' as str FROM dual UNION
    SELECT 'тер' as code, 'тер|территория|' as str FROM dual UNION
    SELECT 'ст' as code, 'ст|станция|' as str FROM dual UNION
    SELECT 'сл' as code, 'сл|слобода|' as str FROM dual UNION
    SELECT 'пр-кт' as code, 'пр.|проспект|пр-кт|' as str FROM dual UNION
    SELECT 'шоссе' as code, 'ш.|шоссе|' as str FROM dual UNION
    SELECT 'пл' as code, 'пл|площадь|пл-дь|' as str FROM dual UNION
    SELECT 'наб.' as code, 'наб.|набережная|наб-ая|' as str FROM dual UNION
    SELECT 'тупик' as code, 'тупик|' as str FROM dual UNION
    SELECT 'мост' as code, 'мост|' as str FROM dual UNION
    SELECT 'пр.' as code, 'проезд|пр.|' as str FROM dual UNION
    SELECT 'блв.' as code, 'блв.|бульвар|' as str FROM dual UNION
    SELECT 'мкн.' as code, 'мкн.|микрорайон|' as str FROM dual UNION
    SELECT 'пос.' as code, 'пос.|посёлок|' as str FROM dual UNION
    SELECT 'овраг' as code, 'овраг|' as str FROM dual UNION
    SELECT 'городок' as code, 'городок|' as str FROM dual
    )
    SELECT t1.code, SUBSTR(t1.str, 
                  DECODE(t2.lvl, 1, 1, INSTR(t1.str, '|', 1, t2.lvl - 1) + 1),
                  INSTR(t1.str, '|', 1, t2.lvl) 
                  - DECODE(t2.lvl, 1, 1, INSTR(t1.str, '|', 1, t2.lvl - 1) + 1))
    FROM test t1,
      LATERAL (SELECT level AS lvl FROM dual
             CONNECT BY NVL(INSTR(t1.str, '|', 1, level), 0) > 0) t2
    ;


    так же есть еще вариант, через преобразование в XML:
    WITH
    str_csv AS (
      SELECT 'проул.' as code, 'проул.|пр-к|' as str FROM dual UNION
      SELECT 'ул.' as code, 'ул.|улица|ул-ца|' as str FROM dual UNION
      SELECT 'пер.' as code, 'пер.|переулок|' as str FROM dual UNION
      SELECT 'кв-л' as code, 'кв-л|квартал|' as str FROM dual UNION
      SELECT 'линия' as code, 'линия|' as str FROM dual UNION
      SELECT 'парк' as code, 'парк|' as str FROM dual UNION
      SELECT 'рзд' as code, 'рзд|разъезд|' as str FROM dual UNION
      SELECT 'сад' as code, 'Сад|' as str FROM dual UNION
      SELECT 'тракт' as code, 'тракт|' as str FROM dual UNION
      SELECT 'тер' as code, 'тер|территория|' as str FROM dual UNION
      SELECT 'ст' as code, 'ст|станция|' as str FROM dual UNION
      SELECT 'сл' as code, 'сл|слобода|' as str FROM dual UNION
      SELECT 'пр-кт' as code, 'пр.|проспект|пр-кт|' as str FROM dual UNION
      SELECT 'шоссе' as code, 'ш.|шоссе|' as str FROM dual UNION
      SELECT 'пл' as code, 'пл|площадь|пл-дь|' as str FROM dual UNION
      SELECT 'наб.' as code, 'наб.|набережная|наб-ая|' as str FROM dual UNION
      SELECT 'тупик' as code, 'тупик|' as str FROM dual UNION
      SELECT 'мост' as code, 'мост|' as str FROM dual UNION
      SELECT 'пр.' as code, 'проезд|пр.|' as str FROM dual UNION
      SELECT 'блв.' as code, 'блв.|бульвар|' as str FROM dual UNION
      SELECT 'мкн.' as code, 'мкн.|микрорайон|' as str FROM dual UNION
      SELECT 'пос.' as code, 'пос.|посёлок|' as str FROM dual UNION
      SELECT 'овраг' as code, 'овраг|' as str FROM dual UNION
      SELECT 'городок' as code, 'городок|' as str FROM dual
    ),
    str_xml AS (
      SELECT code, XMLType('<a><b>'||replace(str, '|','</b><b>')||'</b></a>') xml FROM str_csv
    )
    SELECT
        code, extractValue(value(t),'b') str_type
      FROM
        str_xml s,
        TABLE(XMLSequence(s.xml.extract('a/b'))) t
      WHERE extractValue(value(t),'b') is not null
    ;
    Ответ написан
    Комментировать
  • Как корректно разбить строку на подстроки по разделителю на множестве строк (по датасету)?

    @x_shader
    Oracle & Coffee
    Привет.
    Нужно вовремя остановить connect by.

    SELECT
           t1.code
          ,regexp_substr(t1.str, '[^\|]+', 1, lvl) AS str_splitted
      FROM test t1
     CROSS JOIN LATERAL (
           SELECT level AS lvl
             FROM dual
          CONNECT BY level <= regexp_count(t1.str, '\|') 
     ) t2
    Ответ написан
    7 комментариев
  • Как изучать информатику самостоятельно, чтобы добиться профильного уровня?

    hint000
    @hint000
    у админа три руки
    там будет вести крутой учитель информатики, который отлично и интересно объясняет
    Запоминай алгоритм.
    1. Убедись, что правильно знаешь имя-отчество этого учителя.
    2. Выясняешь, где найти этого учителя. В каких кабинетах он ведёт занятия и т.п. Может быть в учительской подловить.
    3. Смотришь расписание, чтобы найти удобное время, когда можно подойти к этому учителю. На перемене или после уроков.
    4. Говоришь: "Василий Иваныч, я из такого-то класса, вы у нас потом будете вести информатику, я бы хотела проконсультироваться насчёт самостоятельной подготовки..." Только не вздумай явно критиковать преподавание Paint его коллегой, это будет выглядеть не этично. Можно сказать: "Я думаю, что мне будет недостаточно того, что нам сейчас дают на уроках, поэтому занимаюсь самостоятельно". Это будет и правдой и без негатива. Ну и просишь порекомендовать книги или список тем для изучения. Если учитель станет уточнять, что ты уже изучала, чем конкретно интересуешься - это хороший знак (ему не пофиг), ты, наверняка, получишь неплохие рекомендации. Либо если ему в этот момент некогда, но он предложит конкретное время, когда можно обсудить подробно.

    Суть в том, что никто лучше учителя не даст тебе советы по темам, которые он будет преподавать.
    Ответ написан
    Комментировать
  • Как сделать автообновляемую таблицу?

    Adamos
    @Adamos
    На любой из тех, что в тегах к вопросу.
    Ответ написан
    2 комментария
  • Как написать бот для создания ботов?

    Griboks
    @Griboks
    Вообще не проблема, только вы сайтом ошиблись. Вам нужно на фриланс.
    Ответ написан
    Комментировать
  • Как разделить файл на строки, считать определенную строку, а затем разделить ее по разделителю?

    RimMirK
    @RimMirK
    Вроде человек. Вроде учусь. Вроде пайтону
    with open('data/accounts.txt', 'r') as file:
    -   lines = file.readlines()
    +   line = file.readlines()[1]
    -   for x in lines:
    -       login, password = x.split(':')[0], x.split(':')[1]
    +   login, password = x.split(':')
        bot.send_message(message.chat.id, login + password)

    with open('data/accounts.txt', 'r') as file:
        line = file.readlines()[1]
        login, password = x.split(':')
        bot.send_message(message.chat.id, login + password)
    Ответ написан
    Комментировать
  • Как перемешать между собой слова создав новые?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Почти во всех языках разработки есть функция shuffle которая случайным образом тасует массив как колоду карт.
    Вот как тут пишут https://www.geeksforgeeks.org/shuffle-an-array-in-... с помощью numpy.

    Есть еще генераторы перестановок (permutations) там можно получить не случайные а последовательные и неповторяющиеся перестановки. Например для массива из 10 слов можно получить больше 3 млн новых массивов.
    Ответ написан