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

    Vindicar
    @Vindicar
    RTFM!
    1. Подумать.
    2. Сделать.

    А если серьёзно, вынеси загрузку в отдельный поток, в идеале - обёрнутый в класс. Поток НЕ ДОЛЖЕН обращаться напрямую к элементам интерфейса - только к полям своего класса.
    По нажатию кнопки запускай этот поток. Только запуск, без ожидания.

    Чтобы обнаружить завершение, после запуска потока сделай цикл с помощью window.after(). Подробности в доках, но если кратко, метод after() позволяет вызвать функцию в потоке GUI спустя некоторое время. При этом функция может снова запланировать свой вызов через after(), тем самым создавая как-бы цикл. Если не запланируешь новый вызов - цикл прервётся.
    Соответственно, идея в том, что эта функция будет проверять, не закончил ли поток работу (например, читать какое-нибудь логическое значение). Если закончил - она будет вправе обратиться к элементам GUI, чтобы вывести результат. Если не закончил - она снова запланирует свой вызов через after(), скажем, через 200 миллисекунд.

    Ну и да - исключения, чёрт побери! Обрабатывай исключения!
    Ответ написан
    2 комментария
  • Какая книга по Python самая лучшая для новичков и продолжающих?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Лучше Лутца ничего не было и нет.
    Ответ написан
    3 комментария
  • Asyncio.StreamWriter перестает отсылать запросы, что делать?

    @datareset Автор вопроса
    развиваюсь.
    Указав паузу начало нормально функционировать
    while request_screen:
                        writer.write(b'screenshare')
                        await writer.drain()
                        await asyncio.sleep(0.1)
    Ответ написан
    Комментировать
  • Как отправлять заявки с сайта в телеграмм на Django?

    @q2digger
    никого не трогаю, починяю примус
    у телеги есть API , а у джанго - django-rest-framework , вот и кидайте свои сообщения по API
    Ответ написан
    2 комментария
  • Почему не происходит замена символов в тексте?

    @igor6130
    Пользуйте встроенными возможностями языка.
    user_text = input('Введите текст: ')
    
    colon = ':'
    semicolon = ';'
    
    replace_count = user_text.count(colon)
    
    res_text = user_text.replace(colon, semicolon)
    
    print(res_text)
    print('Количество замен ', replace_count)
    Ответ написан
    Комментировать
  • Как сделать Telegram Bot, который выдаёт готовый Excel-файл?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Судя по постановке вопроса вам надо к фрилансерам, сами не потянете, ведь нужно "всего лишь" научиться программировать, выбрать любую библиотеку для работы с API, реализовать необходимую функциональность, вызывать её из бота. Элементарно. Хорошо, что для этого не придётся вас сначала учить читать и писать.
    Вот сейчас все соберёмся и начнем вас с нуля обучать всему этому индивидуально и бесплатно. Вы как себе это предствляете?
    Ответ написан
    Комментировать
  • Вопросы про нейронную сеть?

    Vindicar
    @Vindicar
    RTFM!
    Отвечу на что смогу.
    > Как посчитать нейросеть для тупого запоминания выборки?
    > Почему обучая нейросеть она может менять свой процент правильности?
    > Почему при увеличении слоев сеть порой тупеет.
    Это называется переобучение. Если очень наглядно, то это можно представить так:
    underfitting_and_overfitting_in_machine_learning_image.png
    Слева - недостаточно сложная сеть. Она не может приспособиться к сложности данных, и даёт только грубое подобие той закономерности, которую мы моделируем.
    Справа - чрезмерно сложная сеть. Она очень хорошо вписывается в обучающую выборку (точки на графики), но если ей дать промежуточные точки (т.е. те. которых не было в обучаяющей выборке), она будет давать сильно отличающиеся от реальных ответы. Это и есть "сеть зазубрила выборку" (подразумевается "вместо того, чтобы понять её закономерности").
    Твоя задача как архитектора сети - выбрать такие гиперпараметры (это то, что ты выбираешь до обучения - число слоёв, размер слоёв, скорость обучения, функция активации и т.д.), чтобы сеть не переобучалась.
    Собственно, на графике ошибки сети это как раз выглядит так:
    overfitting-and-underfitting-wrt-model-error-vs-complexity.png
    Синяя кривая - ошибка на обучающей выборке. Желтая - на контрольной. По оси X - сложность сети.
    Тогда твоё поведение объясняется так. Сложная сеть сначала быстро приспосабливается к выборке (быстро падает ошибка на обоих выборках), а потом начинает зазубривать обучающую выборку (и набирать ошибку на контрольной, так как перестаёт понимать закономерности). Если ты это наблюдаешь - сеть слишком сложная.
    Ответ написан
    Комментировать
  • Как настроить пакет psycopg2 в VsCode для jupyter notebook на macOS M1?

    Maksim_64
    @Maksim_64
    Data Analyst
    Нажимаем ctrl+shift+p далее Python: Select Interpreter. Выбираете из тех окружений которые есть (там версии Python и пути к нему в списке.) которое вы будете использовать. После того как вы это сделаете ОБЯЗАТЕЛЬНО закрываете свой терминал (открытый внутри vs code (если конечно же он был открыт)) и cоздаете новый ctrl+shift+` и затем в этом терминале устанавливаете все ваши пакеты и они будут устанавливаться именно в это окружение. Не забудьте ОБЯЗАТЕЛЬНО создать новый терминал, он автоматически не меняет окружение в терминале после выбора Interpreter.
    Ответ написан
    2 комментария
  • Как сделать так, чтоб телеграмм бот мог отправлять рандомные фотографии?

    @kalsc12345
    Неизвестный человек.
    image_folder = 'D:/фотки для питона'
    images = [os.path.join(image_folder, f) for f in os.listdir(image_folder) if f.endswith('.jpg')]
    
    @bot.message_handler()
    def get_user_text(message):
        if message.text == "привет":
            bot.send_message(message.chat.id, "Приветсвую", parse_mode='html')
    
        elif message.text == 'получить фото':
            photo = open(random.choice(images), 'rb')
            bot.send_photo(message.chat.id, photo, caption='Лови')
    
        elif message.text == "рандомные фото":
            photos = [open(image, 'rb') for image in random.sample(images, 3)]
            bot.send_media_group(message.chat.id, [telebot.types.InputMediaPhoto(photo) for photo in photos])
    Ответ написан
    1 комментарий
  • Как проверить полученную случайную выборку в Python по ряду условий?

    Dr_Elvis
    @Dr_Elvis Куратор тега Python
    В гугле забанен
    import random
    
    ABC = ['А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я']
    A = ['А', 'Е', 'Ё', 'И', 'О', 'У', 'Ы', 'Э', 'Ю', 'Я']
    B = ['Б', 'В', 'Г', 'Д', 'Ж', 'З', 'К', 'Л', 'М', 'Н', 'П', 'Р', 'С', 'Т', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ']
    
    creature = ''
    while True:
        fish = random.choices(ABC, k=8)
        for i in range(2, len(fish)):
            if fish[i] in A and fish[i-1] in A and fish[i-2] in A:
                break
            if fish[i] in B and fish[i-1] in B and fish[i-2] in B:
                break
        else:
            creature = ''.join(fish)
            break
    
    print(creature)

    Здесь мы используем бесконечный цикл while True, чтобы генерировать случайные последовательности букв, пока не будет найдена последовательность, которая удовлетворяет условиям.

    Для генерации случайных последовательностей мы используем функцию random.choices, которой передаем список ABC и длину последовательности k.

    Затем мы проверяем каждый элемент последовательности на предмет наличия недопустимых сочетаний гласных или согласных букв, используя цикл for и оператор if. Если мы находим такие сочетания, мы выходим из цикла с помощью оператора break. Если недопустимых сочетаний нет, мы объединяем выбранные буквы в итоговую строку creature с помощью метода join и выходим из цикла while True с помощью оператора break.

    Наконец, мы выводим итоговую строку на экран с помощью функции print.
    Ответ написан
    1 комментарий
  • Почему модуль на Python не работает?

    @ChainikPythonovski Автор вопроса
    Чайник
    Pocker.TexasHoldem()
    Ответ написан
    Комментировать
  • Как перемножить элементы строки в матрице, которые принадлежать диапазону [a,b]?

    @dmshar
    Читаем внимательно ваш код.
    vector=[]
    #Создаем ПУСТОЙ список, в котором вообще нет ни одного элемента.
    ....
    vector[i] *= a[i][j]
    # Ну предположим i=0. Но элемента vector[0] (впрочем, как и vector[1], vector[2].....) у вас нет - список, как я разъяснил выше, ведь пустой.

    Запись типа
    v*=a
    эквивалентна
    v=v*a
    . Вопрос - что-же вы желаете получить, умножая
    vector[i] = vector[i]* a[i][j]
    -- еще раз, если элементов vector[i] с любым i у вас не существует.

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

    Figma-designer
    @Figma-designer
    Для статейного сайта есть смысл использовать наиболее читаемые шрифты. В длинных текстах хорошо смотрятся шрифты с засечками - помогает при чтении. Также важно разумно подойти к размеру текста и расстояниям между словами и строками.

    Сильно выпендриваться в статьях точно не надо, что-то необычно в лучше случае в заголовки (а лучше не надо)
    Ответ написан
    Комментировать
  • Какой шрифт оптимально выбрать для сайта?

    1/ Если выбрали уникальный и яркий шрифт для заголовков, попробуйте что-нибудь смягчённое и знакомое для основного текста. Классический вариант — шрифт без засечек для заголовков и шрифт с засечками для основного текста. (https://habr.com/ru/post/350966/)

    2/ обязательная поддержка нужных вам национальных символов! (https://mikhail-yudin.ru/notes/symbols-font-check/)
    Ответ написан
    Комментировать
  • Как запоминать значение в переменную?

    Vindicar
    @Vindicar
    RTFM!
    1. Включи логику.
    2. Рукалицо.
    3. Поменяй эти две строки местами.

    Рукалицо, потому что достаточно немного подумать, чтобы понять в чём дело.
    Ты сначала присваиваешь значение в w3x3, а потом это уже изменённое значение присваиваешь в temp.
    Потому у тебя все три переменные и имеют одно и то же значение.
    Если сначала присвоить temp = w3x3, а потом уже обновлять w3x3, то тогда в temp будет лежать значение до изменения... но только при условии что это какой-то из неизменяемых типов, вроде чисел, строк или кортежей из них. Если это изменяемый объект, вроде списка, словаря или обычного класса, то не прокатит.
    Ответ написан
    Комментировать
  • Не могу понять в чем проблема, сохраняет только последние полученные данные, в чем дело?

    Вы создали 3 цикла, в которых перезаписываете значение переменной до добавления в лист, именно поэтому у вас сохраняется последнее значение.
    Также вместо создания трех циклов можно обойтись одним. (Вывод сделан на основании одинаковых селекторов переменных cards_hrefs, titles, prices).

    Изначальный ответ
    for items in data:    
        cards = data.find_all("div", class_="card-body")
        for card in cards:
            catalog.append({
                "link to the product": "https://scrapingclub.com" + card.find("a").get("href"),
                "title": card.find("h4").text.strip(),
                "price": card.find("h5").text.strip()
            })

    С верным замечанием от AUser0
    Обновленный ответ
    data = soup.find("div", class_="row my-4")
    
    catalog = []
    cards = data.find_all("div", class_="card-body")
    for card in cards:
        catalog.append({
            "link to the product": "https://scrapingclub.com" + card.find("a").get("href"),
            "title": card.find("h4").text.strip(),
            "price": card.find("h5").text.strip()
        })
    Ответ написан
    2 комментария
  • На какой диск лучше ставить вторую oc?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    любую ОС всегда лучше ставить на ssd, но у вас их тут две и какая будет в приоритете вы не упоминаете.
    Вариант двух ОС на ssd где предполагается поделить его на две части примерно по 60 гиг, так себе затея, и дело тут не в том что две системы на одном диске плохо, нет, дело в том что 60 гиг я бы сказал это в притык, и то всё равно придется постоянно следить чтобы место вдруг не закончилось, то есть, постоянно следить и чистить от лишнего. Но и это даже не всё, так как свободного места предполагается быть мало это само собой скажется на довольно быстром исчерпании физического ресурса ssd которому придется чаще перезаписывать ячейки свободной памяти у которых ротация будет довольно слабая.
    Если это стационарник и есть возможность докупить диск то проще всего взять еще один ssd на 120+ гиг под одну систему, если же это ноут то прикупить ssd на 250+ гиг и поделить уже его между системами.
    Если покупка в данный момент невозможна и нужен именно натив то уже в крайнем случае можно установить linux на hdd, но учтите если ставите систему на hdd то всегда ставьте раздел с системой в начале диска, так как известно что скорость чтения у hdd падает почти в два раза от начала к концу диска.
    Ответ написан
    8 комментариев
  • На какой диск лучше ставить вторую oc?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для современной разработки уже нет смысла держать две оси.

    Если на Windows нужна bash-консоль и линукс окружение - то можно поставить WSL2.
    Если нужны Linux-специфичные службы и приложения в сети - то их можно поднять через Docker.

    Если тебе нужен хайлоад на локальной машине как мне - то просто сразу ставь себе Линукс как основную
    ОС. Это радикально и решительно. К чему эта каша-размазня?
    Ответ написан
    Комментировать
  • Жалуется .format(message.from_user) как пофиксить?

    @igor6130
    Используйте форматирование строк через f-string.
    Ответ написан
    2 комментария
  • Как установить mac os на mack book?

    @Drno
    Задай вопрос в гугл - как переустановить mac os.
    Там надо зажать пару кнопок при запуске пк, подключиться к вифи и дальше мак установит
    Ответ написан
    2 комментария