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

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Варианта 2:
    1.Перед преобразованием проверять сообщение с помощью isdigit().
    2.Ловить соответствующий Exeption и обрабатывать.
    Ответ написан
    1 комментарий
  • Как исправить само-очистку файла wp-load.php?

    @elmurzaalchakov Автор вопроса
    Неизвестный мне вирус который очищает wp-load.php оказался не так страшен, но натворил много бед, а именно все сайты на сервере были заражены.
    Удалено модератором.
    Запрещено распространять вирусы.

    Основные признаки вируса:
    Пустой файл wp-load.php

    wp-admin/css/css.php - если увидели, значит вирус уже интегрирован полностью и вот вот начнется само очистка.

    В папке wp-content а так же в подпапках (всех) - найдете файлы
    function-class.php
    .class-wp-cache.php
    некоторые файлы index.php (там где им не место быть, особенно в папках uploads)
    В них будет содержаться код который по ссылке.
    Простое удаление этих файлов не поможет, так как они создаются заново, надо зайти в wp-load и удалить все что связано с 'WPTemplateOptions' а так же ищите это словосочетание в папке с темой, обычно в файле function нет вирусного кода, там указан лишь путь, поэтому вам необходимо сверить с оригиналом, в моем случает в файл function в конце был добавлен просто путь к файлу с вирусом, назывался он class.php , обнаружил я его при сверке.

    И так что необходимо сделать, удалить папки wo-admin, wp-include именно удалить, так как в подпапках лежит вирус и называется он обычно как название папки в котором лежит, поэтому самое быстрое это удалить, перезапись не поможет. И залить по новой с оригинального архива.
    Так же желательно заменить файлы WP в корневой папке.

    Далее ищем в папке wp-content эти два файла: function-class.php | .class-wp-cache.php и папке с плагинами и uploads дополнительно файл index.php. Удаляем, я удалял с помощью Filezila потому что хостер с убогим файловым менеджером без поиска.

    И на последок ищем в этой же папке файлы которые начинаются на .(название папки), то-есть вирус создает файл который имеет название папки но только с . в начале, например theme/astra/.astrap.php

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

    Важно что никакие плагины не выявляют этот вирус, ни даже virusdie через ftp и прочее, встроенные от хоста так же не выявляют.

    Важно помнить, если у вас полетела wp-load.php и накрылся сайт значит сервак полностью заражен и дальше будет накрываться другие.
    Ответ написан
    8 комментариев
  • Почему пайчарм даёт ошибку, но когда делаю то, что он просит опять ошибка?

    @ragq1991
    Лень копировать код, подтягивать библиотеки, поэтому самый простой вариант. В троке "if call.date == 'piza':", где я так понял вылетает ошибка в первый раз, поставь точку-останова(запустить код нужно в режиме отладки, для этого в верхнем правом углу нажми не треугольник запуска а жука) и посмотри что у тебя лежит в переменной "call", есть там "data" или "date" или ещё что-то.
    Ответ написан
    Комментировать
  • Хочу использовать компьютер одновременно как NAS так и Свитч вопрос в том возможно ли это?

    hint000
    @hint000
    у админа три руки
    Прежде всего, неадекватный выбор операционной системы для NAS.
    spoiler
    Windows - для игр. Linux - для работы с сетью. *BSD - маньякам для работы с сетью.
    Потом неадекватно использовать такое железо в роли свитча. Наверняка, в качестве роутера сейчас используется какая-нибудь "мыльница". В то время как можно на этом железе построить шикарнейший роутер + NAS на Linux.
    spoiler
    Когда вам нужно охранять дом, то вы заводите большую собаку. Хотя у вас уже были 5 кошек ("что-то мы зря их кормим, пусть пользу приносят" (c)) и можно было найти специального тренера, который бы научил кошек злобно лаять и кидаться на незнакомых людей. :)
    А свитч стоит копейки, и выполняет свои функции лучше, чем программный велосипед, потому что там используется специальный чип, идеально заточенный только под функции свитча.
    spoiler
    То, что вы пытаетесь сделать - теоретически это сделать можно, но это бессмысленная хрень. Так что учитывайте:
    1) люди не любят делать бессмысленную хрень (хм... ну-у... да... на самом деле любят, но речь не об этом), вам будет трудно найти человека, который делал ту же самую бессмысленную хрень и смог бы дать не просто теоретические рекомендации, а дать конкретные инструкции на основе личного опыта делания именно этой бессмысленной хрени.
    2) люди не любят тратить время на то, чтобы помочь кому-то делать бессмысленную хрень; лучше потратить время, чтобы помочь кому-то в чём-то полезном, ну или хотя бы потратить время, чтобы отговорить кого-то от делания бессмысленной хрени.
    Ответ написан
    8 комментариев
  • Как скачать документ, книгу с защищенного сайта(только чтение) (Для примера взял книгу с открытым доступом)?

    @Quiensabe
    VR-разработчик
    Есть такой софт Offline Explorer. Он умеет качать ссылки по шаблону, умеет авторизоваться и открывать все страницы как пользователь, умеет проходить по ссылкам и качать доп. материалы. В общем думаю на 95% вашу проблему можно там легко решить.
    Ответ написан
    Комментировать