Задать вопрос
  • Можно ли на Python написать простой сайт без фреймворков?

    Vindicar
    @Vindicar
    RTFM!
    То есть, по аналогии с PHP создаём условный index.py, в нём роутинг на несколько url и включаемые файлы.

    Роутинг реализуется фреймворками. Ты или пишешь HTTP-сервер с нуля (ну или сам реализуешь CGI/WSGI), прежде чем добраться до собственно логики сайта, или поручаешь это фреймворку.
    Ответ написан
    Комментировать
  • Как нарисовать ёлку вложенным циклом?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    for r in range(x):
      print(' ' * (x - r - 1), '#' * (r * 2 + 1), sep='')
    Ответ написан
    Комментировать
  • Как нарисовать ёлку вложенным циклом?

    Maksim_64
    @Maksim_64
    Data Analyst
    height = int(input('Введите высоту '))
    for i in range(1,height+1):
        print(f'{"#"*(i*2-1):^{height * 2}}')
    Ответ написан
    Комментировать
  • Возможно ли парсить разные сайты одним скриптом?

    Steel_Balls
    @Steel_Balls
    с такой формулировкой вопроса всё возможно
    Ответ написан
    Комментировать
  • Хочу создать копию своего сайт,будет ли индексироватся?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Будет ли сайт индексироватся?

    Будет. Плохо (ранжироваться)? - да.
    Ответ написан
    Комментировать
  • Возможно ли использовать ИИ для сравнения текста?

    @rPman
    Юрий, так как имеющейся информации для принятия решения недостаточно (не важно автоматически или вручную), особенно если у вас ТОЛЬКО название, необходимо лезть в интернет, и вот тут то и начинаются проблемы автоматизации.

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

    До появления gpt ИИ, такую задачу решать пришлось бы буквально для каждого сайта источника информации, где то загружать базу вручную, преобразовывать в вид, понятный твоей системе, а где то писать парсер или пользоваться ее поисковой системой (тупой пример - вбиваешь название в поиск по крупному каталогу или магазину, загружаешь описания, и уже на их основе что то делаешь). Теперь же программист может поиграть с промптом и используя ИИ пытаться анализировать веб сайты автоматически без разработки для каждого своего парсера, но в любом случае просто не будет.
    Ответ написан
    1 комментарий
  • Возможно ли использовать ИИ для сравнения текста?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Эту задачу нельзя решать алгортмом. Можно придумать какие-то критерии, сделать инструмент, для облегчения работы пользователя. Но окончательное решение о том, какие товары являются дублями должен принимать ответственный человек. Иначе у вас в базе будет каша.
    Просто представьте себе последствия ложных срабатываний, когда алгоритм примет за одинаковые элементы, товары которые на самом деле разные.

    Пример из жизни: Пользователи решили переименовать старый товар которого больше года нет в продаже, вроде как зачем для новых товаров плодить элементы в базе, если можно использовать уже не нужные. В результате заметили это, когда руководство в отчетах обнаружило, что у новейших товаров оказывается были неплохие продажи несколько лет назад, когда эти товары даже не производились.
    Ответ написан
    3 комментария
  • Возможно ли использовать ИИ для сравнения текста?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Думаю здесь вам лучше помогут
    Ответ написан
    Комментировать
  • Как вывести полностью строки через \n в python?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Ну если через это г..., то
    x_split = x.split('\n')
    print(x_split[0]) # где 0 - номер нужной вам строки (считая  с 0)
    Если вы ищете по предмету, то можно и такое сварганить
    def extract_specific_lines(text, subject_keyword):
        # Разбиваем строку на отдельные строки
        lines = text.split('\n')
    
        # Начинаем с пустого списка для хранения нужных строк
        selected_lines = []
    
        # Флаг для отслеживания, когда начинается нужный блок строк
        start_collecting = False
    
        # Перебираем все строки
        for line in lines:
            if line.startswith(f"Предмет: {subject_keyword}"):
                start_collecting = True
            if start_collecting:
                selected_lines.append(line)
                # Останавливаем сбор после последней нужной строки
                if line.startswith("Задания и решения:"):
                    break
    
        # Объединяем выбранные строки в одну строку
        result = '\n'.join(selected_lines)
    
        return result
    
    # Ваша исходная строка
    x = """Предмет: Право
    Сроки проведения: 3 декабря 2024 года
    Время начала: 16:00
    Классы участия: 9–11
    Итоги проверки: официальная публикация ожидается 9.12
    Задания и решения: задания и решения
    --------------------
    Предмет: Математика
    Сроки проведения: 4 декабря 2024 года
    Время начала: 16:00
    Классы участия: 7–8
    Итоги проверки: официальная публикация ожидается 12.12
    Задания и решения: задания и решения"""
    
    # Используем функцию для извлечения нужных строк
    subject_keyword = "Математика"
    result = extract_specific_lines(x, subject_keyword)
    
    # Выводим результат
    print(result)


    Но вообще все это бред. По-хорошему надо так:
    blocks = []
    block = {
            "Предмет": subject,
            "Сроки проведения": dates,
            "Время начала": times,
            "Классы участия": grades,
            "Итоги проверки": itog,
            "Задания и решения": results_publication
    }
    blocks.append(block)

    А потом делайте, что хотите. Например вывести всё на экран можно так
    for block in blocks:
        for key, value in block.items():
            print(f"{key}: {value}")
        print("-" * 20)
    Ответ написан
    1 комментарий
  • Как сделать так, чтобы скрипт добавлял все данные в таблицу?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    что делать?
    Перестать задавать глупые вопросы, понять что никто здесь отладкой заниматься и копаться в таких портянках не будет и дебажить самому
    Ответ написан
    1 комментарий
  • Как написать автоматизированный тест для тестирования сортировки по цене?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    its_southpaw, [тестил на Win10, Edge].
    1. Что-то не так с селекторами, с теми которые у вас мне не удалось отыскать элементы.
    Для того, чтобы хотя бы был клик по выпадающему меню, использовал такой:
    SORT_BUTTON = (By.XPATH, "(//span[@class='select2-selection select2-selection--single select2-selection--buttoned select2-selection--buttoned-dark select select--sorting'])[1]")

    2. Для SORT_ASC использовал такой:
    SORT_ASC_OPTION = (By.ID, 'select2-catalog_sorting_mobile-7h-result-jsvp-price:asc')

    3. Для SORT_DESC вы вообще решили не писать.
    SORT_DESC_OPTION = (By.ID, 'select2-catalog_sorting_mobile-7h-result-jsvp-price:desc')

    4. В def select_sort_option() добавил небольшую задержку (2-3 секунды) после
    WebDriverWait(self.driver, 10).until(EC.staleness_of(option))
    .

    После этих манипуляций стало так:
    675a4852cde6a196859565.png

    Но второй тест не пройдёт, потому что вот это:
    675a46e898655425277103.png
    Что приводит к: [...11900, 11900, 7735, 11900...], что никак не будет равно отсортированному списку цен в assert.

    З.Ы. если вы хотите читаемую кириллицу в выводе, а не вот это вот:
    test_sort_by_price[\u0426\u0435\u043d\u0430 \u043f\u043e \u0432\u043e\u0437\
    ,
    то добавьте файлик pytest.ini с содержимым:
    [pytest]
    disable_test_id_escaping_and_forfeit_all_rights_to_community_support = True
    Ответ написан
    Комментировать
  • Как сделать, чтобы бот постоянно работал?

    @ImagoRay
    Создайте службу для выполнения бота. Иначе вы можете столкнуться с ограничением сессий на сервере. Бот будет работать то количество времени, которое отведено для неактивной сессии. По истечении этого времени сервер дисконнектит вашу УЗ, так как вы отключились от сервера.
    Ответ написан
    Комментировать
  • Какой отечественный linux выбрать для веб-разработки?

    @lrmpsm53
    Оиентируйся на свежесть и количество пакетов. Поэтому точно не Рэд ос и не альт (ну или смотри в сторону регулярок). Я б росу потыкал

    Сам вообще на Федоре сижу)
    Ответ написан
    2 комментария
  • Почему питание домашних роутеров — 12 В?

    @AiR_WiZArD
    USB относительно новый стандарт, сетевое оборудование появилось раньше, чем получил широкое распростроение USB с токоотдачей 2A. Делать кастомный блок питания на 5В смысла не было, ибо 12В получило широкое распространение (ATX, видеонаблюдение, куча бытовой низковольтки), а рассчитать DC-DC от 5В или 12В разницы почти нет, все равно потом опускать до 3.3В, 1.2В (редко 1.8В). На самом деле есть куча сетевого оборудования с разными напряжениями, если поискать, то можно модели с 5В, 9В, 24В найти, не стоит забывать и о 48В PoE
    Ответ написан
    5 комментариев
  • Почему питание домашних роутеров — 12 В?

    @Tabletko
    никого не трогаю, починяю примус
    Думаю если вести 5 вольт от адаптера питания по проводу до роутера то, при требуемой мощности, будет больше ток и сильнее начинают играть потери на проводах и разъёмах. В нужные 3, 5 вольт напряжение преобразуется уже на плате устройства.
    Ответ написан
    1 комментарий
  • Почему питание домашних роутеров — 12 В?

    LbICbIY
    @LbICbIY
    улвекающийся
    Пятнадцать лет назад роутеры как раз и работали от 5В. Тот же знаменитый дир-320 или wl500. И у таких роутеров часто БП был проблемным местом — умирали кондёры и вайфай переставал цеплять клиентов.
    Ответ написан
    2 комментария
  • Почему питание домашних роутеров — 12 В?

    GavriKos
    @GavriKos
    Невольно думается, что это заговор производителей: чтобы горели, а мы шли новые покупать.

    Ну я вот на днях сменил роутер. Предыдущий отпахал 10 лет - и пахал бы дальше, ничего не сгорело. И это при том что у него адаптер питания на 24 вольта, а допустимое входное - 10-28. Так что тут скорее наоборот страхуется производитель, чтобы сделать нормальное питание внутри для себя, независимо качества БП (их скорее всего делает подрядчик - они далеко не всегда фирменные). А чтобы гарантировать норму внутри - на вход надо таки повыше подать.

    А чего вы про ноуты такой же вопрос не задаете? Там БП тоже не 5 вольт далеко выдают.
    Ответ написан
    12 комментариев
  • Как обойти контроль просмотра видео на сайте образовательного ресурса?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Раз работает на 2х, значит в теории самый простой вариант:
    f12 - консоль
    document.querySelectorAll('video').forEach(video => video.playbackRate = 100500);
    Ответ написан
    Комментировать
  • Как сравнить 2 df в Пандасе?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Если в колонке сборник (строки, числа, пропущенные значения). То это тип 'object'. Что означает python object что в свою очередь надо понимать буквально, массив состоит из python объектов.

    2. Операция сравнения двух объектов, не является однозначно трактованной операцией, в том числе и по этому в python существуют дандер методы которые позволяют переопределять операторы сравнения (вложить свой смысл что именно ты подразумеваешь по сравнением). Это я к тому что ты должен четко понимать что значит равны.

    pandas объекты поддерживают сравнение в его собственной интерпретации и поведении. Если этого достаточно
    то, все элементарно. Если сравнение используется для фильтра то такие колонки не хранят.
    df = pd.DataFrame({
        'A':[1,'a',2],
        'B':[1,'a',3]
    })
    
    df.loc[df['A'] == df['B']]

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

    AmanitaRubescens
    @AmanitaRubescens
    Шалтай-болтай
    Бабушкин способ:

    lst = [
    	{
    		1: 11,
    		2: 12,
    		3: 13,
    	},
    	{
    		1: 21,
    		2: 22,
    		3: 23,
    	},
    	{
    		1: 24,
    		2: 25,
    		3: 26,
    	},
    ]
    add_lst = []
    
    for i in lst:
        add_lst.append(sum(i.values()))
    
    print(sum(add_lst))
    Ответ написан
    Комментировать