• Не могу найти где ошибка??

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    А че вот это за ...
    req = requests.get(url, headers)
      if req == 'https://dashboard.blooket.com/login':
    Ответ написан
    2 комментария
  • Как передать переменные словарем через lambda?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    add = lambda **kwargs: sum(kwargs.values())
    print(add(x=2, y=3, z=4))
    # Prints 9
    
    d = {"x": 5, "y": 3, "z": 1}
    add = lambda x, y, z: x + y + z
    print(add(**d))
    # Prints 9
    Ответ написан
  • Как написать этот format?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    да я и так уже нагуглил много, нашел бы не писал

    врешь ты все

    гугли strftime
    Ответ написан
    Комментировать
  • Почему не работает .connect() из другого файла?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Ну и зачем ты лезешь в UI файл ?
    Не нужно редактировать его потому как он меняется
    Импортируй UI и работай

    spoiler

    from PyQt5 import QtCore, QtWidgets
    import ui.ui_main as ui_main
    import sys
    
    class main_module(QtWidgets.QMainWindow):
        def __init__(self, parent=None):
            """
            """
            QtWidgets.QMainWindow.__init__(self, parent)
            self.ui = ui_main.Ui_MainWindow()
            self.ui.setupUi(self)
    
            self.ui.btn.clicked.connect(self.on_click)
    
        def on_click(self):
            """
            """
            pass
    
    if __name__ == "__main__":
        app = QtWidgets.QApplication(sys.argv)
        window = main_module()
        window.show()
        sys.exit(app.exec_())

    Ответ написан
    Комментировать
  • Почему слетает кодировка при загрузке ui-файла из ресурсов?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    хм... что ты пытаешься сделать вот этим file = QFile(":/ui/coordWidget.ui") я чето не понимаю

    Существует два способа загрузки ui файлов
    1. С использованием модуля uic
    spoiler

    from PyQt5 import QtWidgets, uic 
    import sys 
    app = QtWidgets.QApplication(sys.argv) 
    window = uic.loadUi("MyForm.ui") 
    window.show() 
    sys.exit(app.exec_())


    2. Преобразование UI-файла в PY-файл (pyuic5)
    spoiler

    pyuic5 MyForm.ui -o ui_MyForm.py
    from PyQt5 import QtWidgets 
    import sys, ui_MyForm 
    app = QtWidgets.QApplication(sys.argv) 
    window = QtWidgets.QWidget() 
    ui = ui_MyForm.Ui_MyForm() 
    ui.setupUi(window) 
    window.show() 
    sys.exit(app.exec_())

    Ответ написан
    4 комментария
  • Можно ли перебрать переменные по имени?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    for i in range(1, 9):
        print(locals()["cor"+str(i)])


    Но это фиговая практика
    Ответ написан
  • Почему Python в Pycharm возвращает ValueError при вводе чисел?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Ответ написан
  • Как исправить ошибку в присвоении переменной?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Просто если вдруг препод поспросит другой вариант

    def extractor(store):
        for product in store:
            price = 0
            quantity = 0
            for info in store[product]:
                quantity += info["quantity"]
                price += info["price"]
                yield product, quantity, price
    
    
    stock = {product: {"code": product, "quantity": quantity, "price": price}
             for product, quantity, price in extractor(store)}
    
    for product in goods:
        print("Название - {}, Код - {code}, Кол-во - {quantity}, Стоимость - {price}"
              .format(product, **stock[goods[product]]))


    вывод

    Название - Лампа, Код - 12345, Кол-во - 27, Стоимость - 42
    Название - Стол, Код - 23456, Кол-во - 54, Стоимость - 1030
    Название - Диван, Код - 34567, Кол-во - 3, Стоимость - 2350
    Название - Стул, Код - 45678, Кол-во - 105, Стоимость - 292
    Ответ написан
    Комментировать
  • Существует ли API для проверки работоспособности прокси сервера?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    ИМХО проверять надо не с внешнего сервера с машины на которой эти прокси будут использоваться
    потому как следующий вопрос будет - а почему там работает а у меня нет

    конечно же есть сервисы которые проверяют на доступность с разных точек но с учетом того что процентов 99% прокси не анонимные то есть большие шансы что прокси будут рабочими но не для тебя

    Простейшая реализация проверки выглядит так - делаешь N запросов на каждый прокси и смотришь допустимый процент статуса 200. Упростить задачу по скорости можно заменив get на head запросы

    Пример реализации на Qt + потоки
    628566675d6bf751250079.png
    Ответ написан
    Комментировать
  • Python 3.10 requests, как прописать try, except для перебора разных прокси?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Таких примеров в инете вагон

    import requests
    
    proxies_list = [твои прокси]
    
    for proxy_ip in proxies_list:
        proxies = {
            "http": proxy_ip,
            "https": proxy_ip
        }
        headers = {}
        url = "https://yandex.ru"
    
        try:
            response = requests.head(
                url=url,
                headers=headers,
                proxies=proxies,
                timeout=10)
            # делай что-то с response 
        except Exception as err:
            print("Proxy - {}, Err - {}".format(proxy_ip, err))

    Ответ написан
    3 комментария
  • Как получить переменную с названием равным аргументу функции, которая находиться в классе?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    что же вы блин читать то не хотите
    дам тебе тогда рабочий пример но с ошибкой что бы мучался потом

    spoiler

    class UseCurrency():
        def __init__(self, currency):
            self.currency = getattr(Currency(), currency)
    
        def get_currency(self):
            return self.currency
            
    class Currency():
        USD = 1
        GBP = 2
        EURO = 3
        CHF = 4
        RUB = 5
        UAH = 18    
    
    
    obj = UseCurrency("USD")
    print(obj.get_currency())

    Ответ написан
  • Работа с QSqlQuery - как ускорить обновление записей?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Обычно визуализация работы потоков происходит в рамках, например, QTableView без обращения к БД.

    Следовательно можно не делать запросы к БД на каждой итерации а добавлять / обновлять данные после того как отработают все потоки.

    Что бы это сделать просто храни результаты работы потоков в словаре или списке и после того как потоки отработают используй транзакции для обновления / вставки данных в БД

    Например,
    self.sqlite_con.open()
    self.sqlite_con.transaction()
    
    query = QtSql.QSqlQuery()
    
    for param in self.params:
        sql = ("UPDATE ...")
        query.exec(sql)
    
    self.sqlite_con.commit()
    self.sqlite_con.close()


    P.S. Sqlite не поддерживает пакетную вставку поэтому addBindValue и execBatch особого профита не даст... Разве что тормоза перейдет в конец выполнения программы
    Ответ написан
    Комментировать
  • Почему в Pycharm сломался input()?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Отключи в конфиге Emulate terminal in output console
    Ответ написан
    2 комментария
  • Что я делаю не так? Я хочу спарсить цены на номер и навзания с сайта, но мне выдает ошибку "find() takes no keyword arguments" В чем причина ошибки?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    блин, тебе же показывали пример тут
    в чем сложность доку почитать ?

    иди на фриланс и тебе в момент парсер твоих отелей наколбасят
    Ответ написан
  • Почему выдает ошибку при парсинге "TypeError: find() takes no keyword arguments"? Как исправить это?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    roomlist у тебя <class 'bs4.element.Tag'>
    Читай доки

    Измененный пример

    import requests
    from bs4 import BeautifulSoup
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:100.0) Gecko/20100101 Firefox/100.0"}
    url = "https://hamptonvolgograd.ru/nomera/"
    response = requests.get(url, headers=headers)
    soup = BeautifulSoup(response.text, "html.parser")
    roomlist = soup.findAll("span", class_="h1")
    
    for hostel in roomlist:
        print(hostel.text.strip())

    вывод
    Номер с двуспальной кроватью (номер первой категории)
    Номер с двумя кроватями (номер первой категории)
    Номер с двуспальной кроватью и диваном-кроватью (Джуниор сюит)
    Номер для людей с ограниченными возможностями (номер первой категории)

    Ответ написан
    2 комментария
  • Threads.wait() - долгое ожидание ожидание завершения потоков. Как ускорить?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Это нормальное поведение данного метода
    Ускорить процесс можно предварительно вызвав метод terminate но следует понимать что данный вариант не снимает блокировки если таковые были и если есть работа в БД то может произойти что-нибудь непредвиденное

    Есть другой вариант а именно отказаться вообще от метода wait а использовать сигналы с дополнительной проверкой

    Например в thread можно переопределить сигнал finished и возвращать id потока в управляющий код с последующим удалением потока из, например, словаря.

    1. При создании потока в управляющем коде заносим данные о потоке в словарь
    self.threads["thread_{}".format(i)] = thread

    2. Для создаваемых потоков регистрируем событие finished
    thread.on_finished.connect(self.on_finished)

    3. В потоке переопределяем событие finished
    self.finished.connect(self.on_finished)

    4. При завершении потока генерим сигнал и передаем в управляющий код id потока
    self.on_finished.emit(self.thread_id)

    5. При срабатывании сигнала finished в управляющем коде удаляем поток из словаря self.threads
    self.threads.pop("thread_{}".format(thread_id))

    6. Ну а теперь ждем завершения потоков не через wait() а как-то так
    while self.threads:
        QtWidgets.qApp.processEvents()


    Сам использую этот механизм при визуализации работы потоков
    627f7062da0f5768127213.jpeg
    Ответ написан
  • Как создать запись с помощью API Python в Strapi?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Если сервер ожидает json и используется дата data то надо указать соответствующий заголовок
    headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}


    Либо использовать в requests параметр json и просто передать словать
    Ответ написан
  • Как оптимизировать код для нахождения простых чисел (Задачка из CodeWars)?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    как вариант
    spoiler

    def simple_numbers(m, n):
        for i in range(m, n):
            for j in range(2, i):
                if i % j == 0:
                    break
            else:
                yield i
    
    
    def test(g, m, n):
        lst = []
        for i in simple_numbers(m, n):
            lst.append(i)
            if len(lst)>1:
                if abs(lst[-1] - lst[-2]) == g:
                    return [lst[-1], lst[-2]]
        return False
    
    g = 6
    m = 2
    n = 1100000
    rez = test(g, m, n)
    
    if rez:
        print("{} - {} = {}".format(rez[0], rez[1], g))
    else:
        print("No")

    Ответ написан
    Комментировать
  • PyQT. Почему не работает кнопка в дочернем окне?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    Если кратко то у тебя self и self.form ссылаются на разные объекты и соответственно не видят друг друга

    self - <class '__main__.childForm'>
    self.form - <class 'PyQt5.QtWidgets.QWidget'>


    Полный и немного измененный пример

    from PyQt5 import QtCore, QtWidgets
    import sys
    
    
    class child_form(QtWidgets.QWidget):
        def __init__(self, parent=None):
            QtWidgets.QWidget.__init__(self, parent)
            self.setWindowFlags(QtCore.Qt.Window)
            self.setWindowModality(QtCore.Qt.WindowModal)
            self.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)
            self.setWindowTitle("Дочернее окно")
            self.resize(300, 70)
            btn_close = QtWidgets.QPushButton("&Закрыть дочернее окно")
            btn_close.clicked.connect(self.on_btn_close)
            vbox = QtWidgets.QVBoxLayout()
            vbox.addWidget(btn_close)
            self.setLayout(vbox)
    
        def show_window(self):
            self.show()
    
        def on_btn_close(self):
            self.close()
    
    
    class main_form(QtWidgets.QWidget):
        def __init__(self, parent=None):
            QtWidgets.QWidget.__init__(self, parent)
            self.setWindowTitle("Первая программа на PyQt")
            self.resize(500, 500)
            label = QtWidgets.QLabel("<center>Привет, мир!</center>")
            btn_modal = QtWidgets.QPushButton("Открыть &дочернее окно")
            btn_close = QtWidgets.QPushButton("&Закрыть программу")
            vbox = QtWidgets.QVBoxLayout()
            vbox.addWidget(label)
            vbox.addWidget(btn_modal)
            vbox.addWidget(btn_close)
            self.setLayout(vbox)
            btn_modal.clicked.connect(self.on_btn_modal)
            btn_close.clicked.connect(QtWidgets.qApp.quit)
    
        def show_window(self):
            self.show()
    
        def on_btn_modal(self):
            child = child_form(self)
            child.show_window()
    
    
    def main():
        app = QtWidgets.QApplication(sys.argv)
        form = main_form()
        form.show_window()
        sys.exit(app.exec_())
    
    
    if __name__ == '__main__':
        main()

    Ответ написан
    Комментировать
  • Почему выходит ошибка href = href_json['href'] TypeError: string indices must be integers?

    seven5674
    @seven5674
    Старый я уже что бы что-то в себе менять
    href_json = self._get_upload_link(disk_file_path=disk_file_path).get('href', '')
            href = href_json['href']

    href ты уже вытащил вот тут .get('href', '')
    и сейчас у тебя переменная href_json по идее должна содержать url
    так как строки это индексируемые и не изменяемые объекты то доступ к элементам происходит по индексу а ты туда лезешь href_json['href']
    Ответ написан
    Комментировать