RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-423479

almaz's questions

Martin Hope
almaz
Asked: 2024-03-15 17:02:48 +0000 UTC

当其他异步函数长时间运行时运行异步函数

  • 5

有两个异步函数定期运行(分别每 4 小时和 8 小时),而另一个函数每分钟运行一次。问题:如何在长时间运行的进程处于睡眠状态时每分钟运行一个函数?

import asyncio
import datetime
from loguru import logger


async def bla():
    ''' 
    должна работать каждую минуту 
    ''' 
    now_time = datetime.datetime.now()
    now_time_new = now_time.strftime('%H:%M:%S')
    logger.debug(f'start bla : {now_time_new}')
    await asyncio.sleep(1)      # типо засыпаем на 1 minute
    now_time = datetime.datetime.now()
    now_time_new = now_time.strftime('%H:%M:%S')
    logger.info(f'end bla : {now_time_new}')



async def func_1():
    ''' 
    включается условно на 4 часа 
    ''' 
    now_time = datetime.datetime.now()
    now_time_new = now_time.strftime('%H:%M:%S')
    logger.info(f'start func_1 : {now_time_new}')
    await asyncio.sleep(4)      # типо засыпаем на 4 Hours
    now_time = datetime.datetime.now()
    now_time_new = now_time.strftime('%H:%M:%S')
    logger.info(f'end func_1 : {now_time_new}')
    return 'result_of_func_1'


async def func_2():
    ''' 
    включается условно на 8 часа 
    ''' 
    now_time = datetime.datetime.now()
    now_time_new = now_time.strftime('%H:%M:%S')
    logger.info(f'start func_2 : {now_time_new}')
    await asyncio.sleep(8)      # типо засыпаем на 8 Hours
    now_time = datetime.datetime.now()
    now_time_new = now_time.strftime('%H:%M:%S')
    logger.info(f'end func_2 : {now_time_new}')
    return 'result_of_func_2'


async def main():
    while True:
        task_1 = asyncio.create_task(func_1())
        task_2 = asyncio.create_task(func_2())

        # asyncio.create_task(bla())        # должна включатся каждую минуту пока условно другие 
        # функции засыпают на более длительный срок !!! + 
        
        res_of_func_1 = await task_1        # выводит результат каждые 4 часа
        res_of_func_2 = await task_2        # выводит результат каждые 8 часа
        logger.warning(f'{res_of_func_1}, {res_of_func_2}\n')
        await asyncio.sleep(1)


if __name__ == "__main__":
    result = asyncio.run(main())

python
  • 1 个回答
  • 71 Views
Martin Hope
almaz
Asked: 2023-08-15 16:40:51 +0000 UTC

python pandas如何获取第一个不匹配值的索引

  • 7
import pandas as pd

# assign data
df_new = pd.DataFrame({'value_1': [4, 1, 7, 2, 3, 0, 10, 1, 9],
                       'value_2': [6, 5, 4, 6, 7, 3, 5, 2, 3]})
#                                        ^--> индекс данного первого значения не удовлетворяющего условию
print(df_new)

# фильтруем данные по колонке 'value_2'
dFilter = df_new[df_new.value_2 > 4]
dFilter

在我的示例中,这将是 df_new.value_2 列中索引 = 2 的值“4”!

python
  • 2 个回答
  • 39 Views
Martin Hope
almaz
Asked: 2023-08-15 12:57:48 +0000 UTC

python pandas 为什么数据框中有错误(关键错误:0)

  • 5

有这样一个数据框/时间序列(货币对):https ://dropmefiles.com/rQPKD

import pandas as pd


# чтение и подготовка данных
df = pd.read_csv('usdcad_H1_04_2023_support.csv', index_col=0, delimiter='\t', usecols=["time",'open', 'high', 'low', 'close'])
df.index = pd.to_datetime(df.index)
df_res = df.loc[df.index.to_series().between('2023-04-24 11:00:00', '2023-05-08 15:00:00')]

# далее/ниже хочу получить dataframe, где будут отфильтрованы значения 'close' выше определённого значения причем до первого неподходящего значения

# 1. проходит нормально для условия '< 1.35306'
df_new = df_res.groupby((df_res["close"] < 1.35306 ).cumsum()).get_group(0)
print(df_new)

# 2. не проходит для условия '< 1.35346'  -------------------- вызывает ошибку key_error: 0 !!!
# по сути в dataframe есть значения 'close' выше '1.35346' , не понимаю логику ошибки
df_new = df_res.groupby((df_res["close"] < 1.35346 ).cumsum()).get_group(0)
print(df_new)

python
  • 1 个回答
  • 20 Views
Martin Hope
almaz
Asked: 2023-08-10 15:19:20 +0000 UTC

python pandas如何最好地过滤数据帧数据以找到第一个值

  • 5
import pandas as pd

# assign data
df_new = pd.DataFrame({'value_1': [4, 1, 7, 2, 3, 0, 10, 1, 9],
                       'value_2': [6, 5, 4, 6, 7, 3, 5, 2, 3]})

print(df_new)

# фильтруем данные по колонке 'value_2'
dFilter = df_new[df_new.value_2 > 4]
dFilter

任务:如何在不使用循环的情况下仅使用 pandas / numpy 来过滤/仅获取与过滤条件不匹配的第一个值的数据?

需要哪些数据的示例

python
  • 2 个回答
  • 39 Views
Martin Hope
almaz
Asked: 2023-05-20 15:40:12 +0000 UTC

javascript如何正确指定位于更高级别的文件的路径

  • 5

有一个data.json文件,它比HTML和js_scripts文件高几级,这里是如何正确地将项目文件夹外的本地文件读入Javascript?

<!DOCTYPE html>
<html>

<body>

    <select id="mySelect">
        <option>football</option>
        <option>Basketball</option>
        <option>Hockey</option>
        <option>Swimming</option>
    </select>

    <p>
    Click the button to select the
    option element with index "2".
</p>

    <button onclick="myFunction()">
    click me

    <button onclick="Func()">
    click me_2

</button>

    <script>

        // 1. method: read local file and show them in console.log
        fetch('./data.json')  // ------ > как указать к файлу на несколько уровней выше (или абсолютный путь ?)
        .then(res => res.json())
        .then(data => {
            console.log(data)
            console.log('this type:' + typeof(data))    // show data_type of data
            console.log(data['Сергей']) // read by key of json
        })

    </script>

</body>

</html>



javascript
  • 1 个回答
  • 22 Views
Martin Hope
almaz
Asked: 2023-05-18 16:36:49 +0000 UTC

如何在 HTML 页面上正确显示来自 json 文件的数据(在 html 页面本身上切换值)

  • 5

如何在 HTML 页面上正确显示来自 json 文件的数据(包括切换到 HTML 值)

文件内容data.json:

data = {
    "Сергей": {
        "возраст": 34,
        "пол": "мужской"
    },
    "Марат": {
        "возраст": 39,
        "пол": "мужской"
    }
}

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!--> <script src="script.js"></script> -->

</body>

</html>

    <tr>
        <th><label for="id_name">Выберите имя:</label></th>
        <td>
            <select name="regime" id="id_name">
                <option value="здесь должно быть имя № 1"></option>
                <option value="здесь должно быть имя № 2 и тд"></option>
            </select>
        </td>
    </tr>

    <tr>
        <th><label for="age">Возраст:</label></th>
        <td>
            <input type="number" name="age" id="age">
        </td>
    </tr>
    <tr>
        <th><label for="sex">пол:</label></th>
        <td>
            <input type="text" name="sex" id="sex">
        </td>
    </tr>

<!-- end -->

    <!--  My_script_Test  -->
    <script>

        // 1. method: read local file and show them in console.log
        fetch('./data.json')  // read local_json_file
        .then(res => res.json())
        .then(data => {
            console.log(data)
        })

    </script>

页面示例

javascript
  • 1 个回答
  • 45 Views
Martin Hope
almaz
Asked: 2022-08-30 15:26:44 +0000 UTC

常规如何查找括号中指定的单词/表达式

  • -1

如何找到from关键字前括号中给出的单词/值?

从 SVODKA_SHASSI 中选择不同的 rtrim( model )、rtrim( Otsek_polog ),其中 ID_KOL =

регулярные-выражения
  • 1 个回答
  • 32 Views
Martin Hope
almaz
Asked: 2022-08-12 18:33:33 +0000 UTC

为什么它不将新值存储在字典中(在循环中)?[关闭]

  • 1
关闭 这个问题是题外话。目前不接受回复。

该问题是由不再复制的问题或错字引起的。虽然类似问题可能与本网站相关,但该问题的解决方案不太可能帮助未来的访问者。通常可以通过在发布问题之前编写和研究一个最小程序来重现问题来避免此类问题。

1 个月前关闭。

改进问题

由于某种原因不会将新值保存在字典中

def my_func():
    """
    
    """
    peremenaya_1 = 'test_1'   # !!!
    peremenaya_2 = 114        # !!!
    peremenaya_3 = ''         # <--- необходимо будет обновить это значение

    loc_dict = locals()

    for value in loc_dict:
        print(f'{type(value)}, {value},{loc_dict[value]}')
        if loc_dict[value] == '':    
            print(f'find empty element {loc_dict[value]=}')
            loc_dict[value] == 'xxx'     # !!! почему то не сохраняет новое значение 
        else:
            print(f'this: {loc_dict[value]}')

    print(f'\nloc_dict new = {loc_dict}')
    

my_func()
python словари
  • 1 个回答
  • 38 Views
Martin Hope
almaz
Asked: 2022-08-12 13:16:35 +0000 UTC

python 检查如何获取给定函数中使用的名称/变量列表

  • 0

如何使用检查模块获取给定函数中使用的变量名称列表(在函数本身的执行内部或从外部)

import inspect    # модуль для интроспекции живых обьектов


def save_svodka_shassi():
    """
    Сохранение введенных данных в Combo_boxes в БД таблицу 'SVODKA_SHASSI'
    """
    peremenaya_1 = 'test_1'   # !!!
    peremenaya_2 = 114        # !!!
    peremenaya_3 = None
python инспекция-кода
  • 1 个回答
  • 31 Views
Martin Hope
almaz
Asked: 2022-08-15 16:11:50 +0000 UTC

如何从子窗口获取小部件值到另一个窗口

  • 1

类似的东西

主文件

import sys
import platform
from PySide2 import QtCore, QtGui, QtWidgets
from PySide2.QtCore import (QCoreApplication, QPropertyAnimation, QDate, QDateTime, QMetaObject, QObject, QPoint, QRect, QSize, QTime, QUrl, Qt, QEvent)
from PySide2.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont, QFontDatabase, QIcon, QKeySequence, QLinearGradient, QPalette, QPainter, QPixmap, QRadialGradient)
from PySide2.QtWidgets import *

# ||| my imports
import asyncio
# from asyncqt import QEventLoop, asyncSlot  # для асинхронности pyqt5
from loguru import logger    # библиотека для вывода сообщений/логов

# GUI FILE
from ui_main import Ui_MainWindow      # мой дизайн GUI


# IMPORT FUNCTIONS
from ui_functions import *          # функции (ко-я получает значение из соседнего окна)


class MainWindow(QMainWindow):
    """
    Главное окно программы
    работа с таблицами из БД по "Шасси"
    """
    def __init__(self, parent=None):
        QMainWindow.__init__(self)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        ## TOGGLE/BURGUER MENU
        ########################################################################
        self.ui.Btn_Toggle.clicked.connect(lambda: UIFunctions.toggleMenu(self, 250, True))

        ## PAGES
        ########################################################################

        # PAGE 1
        self.ui.btn_page_1.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.page_1))
        self.ui.show_content.clicked.connect(lambda: UIFunctions.sql_content(self))  # вывод данных из БД в таблицу

        # PAGE 2
        self.ui.btn_page_2.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.page_2))

        # PAGE 3
        self.ui.btn_page_3.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.page_3))

        self.ui.pushButton.clicked.connect(lambda: self.show_logon_window())    # показать окно авторизации

        ## SHOW ==> MAIN WINDOW
        ########################################################################
        self.show()
        ## ==> END ##


    def show_logon_window(self):
        self.w = Logon()
        self.w.show()
        self.hide()  #


class Logon(QWidget):
    """
    Класс окно - авторизации
    """
    def __init__(self, parent=None):
        # super().__init__()        # было ранее
        super(Logon, self).__init__(parent)
        self.parent = parent        # поставил для реализации дочернего окна
        # QWidget.__init__(self)
        self.resize(200, 150)
        layout = QVBoxLayout()
        self.button = QPushButton("Войти")
        self.label = QLabel("Введите логин и пароль для входа")
        self.button.clicked.connect(self.show_main_window)
        self.login_edit = QLineEdit('логин')          # вот значение ко-е надо получить в основном окне
        self.password_edit = QLineEdit('пароль')
        self.password_edit.setEchoMode(QLineEdit.Password)    

        layout.addWidget(self.label)
        layout.addWidget(self.login_edit)
        layout.addWidget(self.password_edit)
        layout.addWidget(self.button)

        self.setLayout(layout)


    def show_main_window(self):
        """
        при входе в систему откроется главное окно программмы для работы с БД и тд , и скрывая само окно авторизации
        :return:
        """
        # x = self.login_edit.text()
        # logger.info(f"your login is: {x}")

        w = MainWindow()
        w.show()                # show window main
        # self.hide()   #       # hide window of authorization


if __name__ == "__main__":
    app = QApplication(sys.argv)

    app.setStyle("Fusion")
    palette = QPalette()
    palette.setColor(QPalette.Window, QColor(53, 53, 53))
    palette.setColor(QPalette.WindowText, Qt.white)
    palette.setColor(QPalette.Base, QColor(25, 25, 25))
    palette.setColor(QPalette.AlternateBase, QColor(53, 53, 53))
    palette.setColor(QPalette.ToolTipBase, Qt.white)
    palette.setColor(QPalette.ToolTipText, Qt.white)
    palette.setColor(QPalette.Text, Qt.white)
    palette.setColor(QPalette.Button, QColor(45, 53, 53))
    palette.setColor(QPalette.ButtonText, Qt.white)
    palette.setColor(QPalette.BrightText, Qt.red)
    palette.setColor(QPalette.Link, QColor(12, 100, 238))
    palette.setColor(QPalette.Highlight, QColor(182, 115, 228))
    palette.setColor(QPalette.HighlightedText, Qt.black)
    app.setPalette(palette)
    app.setStyleSheet(
        "QToolTip { color: #ffffff; background-color: #2a82da; border: 1px solid white; }"
    )

    
    ex = Logon()
    ex.show()     # выводим окно авторизации
    sys.exit(app.exec_())

ui_main.py


from PySide2.QtCore import (QCoreApplication, QMetaObject, QObject, QPoint,
    QRect, QSize, QUrl, Qt)
from PySide2.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont,
    QFontDatabase, QIcon, QLinearGradient, QPalette, QPainter, QPixmap,
    QRadialGradient)
from PySide2.QtWidgets import *


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        if MainWindow.objectName():
            MainWindow.setObjectName(u"MainWindow")
        MainWindow.resize(1000, 500)
        MainWindow.setMinimumSize(QSize(1000, 500))
        MainWindow.setStyleSheet(u"background-color: rgb(45, 45, 45);")
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName(u"centralwidget")
        self.verticalLayout = QVBoxLayout(self.centralwidget)
        self.verticalLayout.setSpacing(0)
        self.verticalLayout.setObjectName(u"verticalLayout")
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.Top_Bar = QFrame(self.centralwidget)
        self.Top_Bar.setObjectName(u"Top_Bar")
        self.Top_Bar.setMaximumSize(QSize(16777215, 40))
        self.Top_Bar.setStyleSheet(u"background-color: rgb(35, 35, 35);")
        self.Top_Bar.setFrameShape(QFrame.NoFrame)
        self.Top_Bar.setFrameShadow(QFrame.Raised)
        self.horizontalLayout = QHBoxLayout(self.Top_Bar)
        self.horizontalLayout.setSpacing(0)
        self.horizontalLayout.setObjectName(u"horizontalLayout")
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.frame_toggle = QFrame(self.Top_Bar)
        self.frame_toggle.setObjectName(u"frame_toggle")
        self.frame_toggle.setMaximumSize(QSize(70, 40))
        self.frame_toggle.setStyleSheet(u"background-color: rgb(85, 170, 255);")
        self.frame_toggle.setFrameShape(QFrame.StyledPanel)
        self.frame_toggle.setFrameShadow(QFrame.Raised)
        self.verticalLayout_2 = QVBoxLayout(self.frame_toggle)
        self.verticalLayout_2.setSpacing(0)
        self.verticalLayout_2.setObjectName(u"verticalLayout_2")
        self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.Btn_Toggle = QPushButton(self.frame_toggle)
        self.Btn_Toggle.setObjectName(u"Btn_Toggle")
        sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.Btn_Toggle.sizePolicy().hasHeightForWidth())
        self.Btn_Toggle.setSizePolicy(sizePolicy)
        self.Btn_Toggle.setStyleSheet(u"color: rgb(255, 255, 255);\n"
"border: 0px solid;")

        self.verticalLayout_2.addWidget(self.Btn_Toggle)


        self.horizontalLayout.addWidget(self.frame_toggle)

        self.frame_top = QFrame(self.Top_Bar)
        self.frame_top.setObjectName(u"frame_top")
        self.frame_top.setFrameShape(QFrame.StyledPanel)
        self.frame_top.setFrameShadow(QFrame.Raised)
        self.pushButton = QPushButton(self.frame_top)
        self.pushButton.setObjectName(u"pushButton")
        self.pushButton.setGeometry(QRect(700, 2, 231, 31))
        self.pushButton.setStyleSheet(u"color: rgb(255, 246, 248);\n"
"font: 12pt \"MS Shell Dlg 2\";")

        # Welcome label
        self.welcome_label = QLabel(self.frame_top)
        self.welcome_label.setGeometry(QRect(65, 2, 170, 31))
        self.welcome_label.setText('welcome user:')

        self.horizontalLayout.addWidget(self.frame_top)


        self.verticalLayout.addWidget(self.Top_Bar)

        self.Content = QFrame(self.centralwidget)
        self.Content.setObjectName(u"Content")
        self.Content.setFrameShape(QFrame.NoFrame)
        self.Content.setFrameShadow(QFrame.Raised)
        self.horizontalLayout_2 = QHBoxLayout(self.Content)
        self.horizontalLayout_2.setSpacing(0)
        self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
        self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.frame_left_menu = QFrame(self.Content)
        self.frame_left_menu.setObjectName(u"frame_left_menu")
        self.frame_left_menu.setMinimumSize(QSize(120, 0))      # установка ширины левого frame
        self.frame_left_menu.setMaximumSize(QSize(70, 16777215))
        self.frame_left_menu.setStyleSheet(u"background-color: rgb(35, 35, 35);")
        self.frame_left_menu.setFrameShape(QFrame.StyledPanel)
        self.frame_left_menu.setFrameShadow(QFrame.Raised)
        self.verticalLayout_3 = QVBoxLayout(self.frame_left_menu)
        self.verticalLayout_3.setObjectName(u"verticalLayout_3")
        self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.frame_top_menus = QFrame(self.frame_left_menu)
        self.frame_top_menus.setObjectName(u"frame_top_menus")
        self.frame_top_menus.setFrameShape(QFrame.NoFrame)
        self.frame_top_menus.setFrameShadow(QFrame.Raised)
        self.verticalLayout_4 = QVBoxLayout(self.frame_top_menus)
        self.verticalLayout_4.setSpacing(0)
        self.verticalLayout_4.setObjectName(u"verticalLayout_4")
        self.verticalLayout_4.setContentsMargins(0, 0, 0, 0)
        self.btn_page_1 = QPushButton(self.frame_top_menus)
        self.btn_page_1.setObjectName(u"btn_page_1")
        self.btn_page_1.setMinimumSize(QSize(0, 40))
        self.btn_page_1.setStyleSheet(u"QPushButton {\n"
"   color: rgb(255, 255, 255);\n"
"   background-color: rgb(35, 35, 35);\n"
"   border: 0px solid;\n"
"}\n"
"QPushButton:hover {\n"
"   background-color: rgb(85, 170, 255);\n"
"}")

        self.verticalLayout_4.addWidget(self.btn_page_1)

        self.btn_page_2 = QPushButton(self.frame_top_menus)
        self.btn_page_2.setObjectName(u"btn_page_2")
        self.btn_page_2.setMinimumSize(QSize(0, 40))
        self.btn_page_2.setStyleSheet(u"QPushButton {\n"
"   color: rgb(255, 255, 255);\n"
"   background-color: rgb(35, 35, 35);\n"
"   border: 0px solid;\n"
"}\n"
"QPushButton:hover {\n"
"   background-color: rgb(85, 170, 255);\n"
"}")

        self.verticalLayout_4.addWidget(self.btn_page_2)

        self.btn_page_3 = QPushButton(self.frame_top_menus)
        self.btn_page_3.setObjectName(u"btn_page_3")
        self.btn_page_3.setMinimumSize(QSize(0, 40))
        self.btn_page_3.setStyleSheet(u"QPushButton {\n"
"   color: rgb(255, 255, 255);\n"
"   background-color: rgb(35, 35, 35);\n"
"   border: 0px solid;\n"
"}\n"
"QPushButton:hover {\n"
"   background-color: rgb(85, 170, 255);\n"
"}")

        self.verticalLayout_4.addWidget(self.btn_page_3)

        # ||| Tree ||| ---------------------------------------------------- >
        self.tree = QTreeWidget(self.frame_top_menus)
        # Установить количество столбцов
        self.tree.setColumnCount(1)
        self.tree.setMinimumSize(QSize(0, 80))
        # self.tree.setColumnWidth(0, 100)

        root = QTreeWidgetItem(self.tree)
        root.setText(0, 'Отчеты')

        root_2 = QTreeWidgetItem(self.tree)
        root_2.setText(0, 'Справочники \nи опции')

        # Установить дочерний узел 1
        child1 = QTreeWidgetItem()
        child1.setText(0, 'Отчет за месяц')
        root.addChild(child1)

        # Установить дочерний узел 2
        child2 = QTreeWidgetItem()
        child2.setText(0, 'Отчет за сутки')
        root.addChild(child2)

        # Установить дочерний узел 3
        child3 = QTreeWidgetItem()
        child3.setText(0, 'Сводка по дням')
        root.addChild(child3)

        # Установить дочерний узел 4
        child4 = QTreeWidgetItem()
        child4.setText(0, 'Сводка по шасси')
        root.addChild(child4)

        # Установить дочерний узел 5
        child5 = QTreeWidgetItem()
        child5.setText(0, 'Сводка по сдаче АВЗ')
        root.addChild(child5)

        ## -- Второй подраздел ------------------------
        # Установить дочерний узел 1
        child2_1 = QTreeWidgetItem()
        child2_1.setText(0, 'Справочник цветов')
        root_2.addChild(child2_1)

        # Установить дочерний узел 2
        child2_2 = QTreeWidgetItem()
        child2_2.setText(0, 'Справочник обьемов')
        root_2.addChild(child2_2)

        # Установить дочерний узел 3
        child3_3 = QTreeWidgetItem()
        child3_3.setText(0, 'Справочник спецтехники')
        root_2.addChild(child3_3)

        # Установить дочерний узел 4
        child4_4 = QTreeWidgetItem()
        child4_4.setText(0, 'Справочник сидений')
        root_2.addChild(child4_4)

        # Установить дочерний узел 5
        child5_5 = QTreeWidgetItem()
        child5_5.setText(0, 'Справочник мест')
        root_2.addChild(child5_5)

        # Установить дочерний узел 6
        child6_6 = QTreeWidgetItem()
        child6_6.setText(0, 'Справочник модификаций')
        root_2.addChild(child6_6)

        self.verticalLayout_4.addWidget(self.tree)    # add  tree to Layout


        self.verticalLayout_3.addWidget(self.frame_top_menus, 0, Qt.AlignTop)


        self.horizontalLayout_2.addWidget(self.frame_left_menu)

        self.frame_pages = QFrame(self.Content)
        self.frame_pages.setObjectName(u"frame_pages")
        self.frame_pages.setFrameShape(QFrame.StyledPanel)
        self.frame_pages.setFrameShadow(QFrame.Raised)
        self.verticalLayout_5 = QVBoxLayout(self.frame_pages)
        self.verticalLayout_5.setObjectName(u"verticalLayout_5")
        self.stackedWidget = QStackedWidget(self.frame_pages)
        self.stackedWidget.setObjectName(u"stackedWidget")
        self.page_1 = QWidget()
        self.page_1.setObjectName(u"page_1")
        self.verticalLayout_7 = QVBoxLayout(self.page_1)
        self.verticalLayout_7.setObjectName(u"verticalLayout_7")
        # self.test = Qta
        self.label_1 = QLabel(self.page_1)
        self.label_1.setObjectName(u"label_1")
        font = QFont()
        font.setPointSize(40)
        self.label_1.setFont(font)
        self.label_1.setStyleSheet(u"color: #FFF;")
        self.label_1.setAlignment(Qt.AlignRight)

        self.verticalLayout_7.addWidget(self.label_1)

        # Table widget --------------------------------------------------------------------------------------- >
        self.table = QTableWidget(self.page_1)  # Create a table
        # self.table.setColumnCount(3)            # кол-во столбцов

        self.show_content = QPushButton(self.page_1)  # button press show content in table

        # self.label_2 = QLabel(self.page_1)
        # self.label_2.setObjectName(u"label_2")
        # self.label_2.setGeometry(QRect(1, 5, 121, 61))
        # self.label_2.setStyleSheet(u"font: 20pt \"MS Shell Dlg 2\";\n"
        #                            "font: 12pt \"MS Shell Dlg 2\";")
        # self.label_2.setText(u"Введите год: \nВведите месяц:")
        # self.label_2.setText(u"введите месяц !!!")
        self.comboBox = QComboBox(self.page_1)
        self.comboBox.setObjectName(u"comboBox")
        self.comboBox.setGeometry(QRect(350, 2, 69, 22))
        self.comboBox.setMaximumWidth(100)
        year_list = ['Выберите год', 2020, 2021, 2022]
        month_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
        new_list = list(map(lambda x: self.comboBox.addItem(str(x)), year_list))

        self.comboBox_2 = QComboBox(self.page_1)
        self.comboBox_2.setObjectName(u"comboBox_2")
        self.comboBox_2.setGeometry(QRect(350, 6, 69, 22))
        self.comboBox_2.setMaximumWidth(100)
        new_list_2 = list(map(lambda y: self.comboBox_2.addItem(str(y)), month_list))

        self.show_content.setMinimumSize(150, 40)
        self.show_content.setMaximumSize(150, 40)


        self.table.resizeColumnsToContents()
        self.verticalLayout_7.addWidget(self.comboBox)  # change year of Combobox
        self.verticalLayout_7.addWidget(self.comboBox_2)  # change year of Combobox

        self.verticalLayout_7.addWidget(self.show_content)  # add press button widget to page_1
        self.verticalLayout_7.addWidget(self.table)   # add table widget to page_1

        # -----------------------------------------------

        self.stackedWidget.addWidget(self.page_1)
        self.page_2 = QWidget()
        self.page_2.setObjectName(u"page_2")
        self.verticalLayout_6 = QVBoxLayout(self.page_2)
        self.verticalLayout_6.setObjectName(u"verticalLayout_6")
        self.label_2 = QLabel(self.page_2)
        self.label_2.setObjectName(u"label_2")
        self.label_2.setFont(font)
        self.label_2.setStyleSheet(u"color: #FFF;")
        self.label_2.setAlignment(Qt.AlignCenter)

        self.verticalLayout_6.addWidget(self.label_2)

        self.stackedWidget.addWidget(self.page_2)
        self.page_3 = QWidget()
        self.page_3.setObjectName(u"page_3")
        self.verticalLayout_8 = QVBoxLayout(self.page_3)
        self.verticalLayout_8.setObjectName(u"verticalLayout_8")
        self.label = QLabel(self.page_3)
        self.label.setObjectName(u"label")
        self.label.setFont(font)
        self.label.setStyleSheet(u"color: #FFF;")
        self.label.setAlignment(Qt.AlignCenter)

        self.verticalLayout_8.addWidget(self.label)

        self.stackedWidget.addWidget(self.page_3)

        self.verticalLayout_5.addWidget(self.stackedWidget)


        self.horizontalLayout_2.addWidget(self.frame_pages)


        self.verticalLayout.addWidget(self.Content)

        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)

        self.stackedWidget.setCurrentIndex(0)


        QMetaObject.connectSlotsByName(MainWindow)
    # setupUi

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
        self.Btn_Toggle.setText(QCoreApplication.translate("MainWindow", u"Развернуть", None))
        self.pushButton.setText(QCoreApplication.translate("MainWindow", u"\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0432 \u043e\u043a\u043d\u043e \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438", None))
        self.btn_page_1.setText(QCoreApplication.translate("MainWindow", u"Журнал\n изменений", None))
        self.btn_page_2.setText(QCoreApplication.translate("MainWindow", u"Page 2", None))
        self.btn_page_3.setText(QCoreApplication.translate("MainWindow", u"Page 3", None))
        self.label_1.setText(QCoreApplication.translate("MainWindow", u"PAGE 1", None))
        self.label_2.setText(QCoreApplication.translate("MainWindow", u"PAGE 2", None))
        self.label.setText(QCoreApplication.translate("MainWindow", u"PAGE 3", None))
        self.show_content.setText(QCoreApplication.translate("MainWindow", u"Показать данные", None))
    # retranslateUi

ui_functions.py

import os
from loguru import logger     # библиотека для вывода в консоли и записей логов


## ==> GUI FILE
from main import MainWindow, QPropertyAnimation, QtCore, QTableWidgetItem
from main import Logon  # класс реализации окна авторизации !!!


os.system('cls')


class UIFunctions(MainWindow):

    def toggleMenu(self, maxWidth, enable):
        if enable:

            # GET WIDTH
            width = self.ui.frame_left_menu.width()
            maxExtend = maxWidth
            standard = 70

            # SET MAX WIDTH
            if width == 70:
                # self.ui.Btn_Toggle.setText('Развернуть')
                widthExtended = maxExtend
            else:
                # print("test")
                # self.ui.Btn_Toggle.setText('Свернуть')
                widthExtended = standard

            # ANIMATION
            self.animation = QPropertyAnimation(self.ui.frame_left_menu, b"minimumWidth")
            self.animation.setDuration(400)
            self.animation.setStartValue(width)
            self.animation.setEndValue(widthExtended)
            self.animation.setEasingCurve(QtCore.QEasingCurve.InOutQuart)
            self.animation.start()


    def sql_content(self):
        """
        вывод данных и попытка получить значение из другого окна (авторизация)
        """
        
        # test check value from child window
        test_a = self.login_edit.text()          # пробую получить значения из окна авторизации ???
        # test_b = self.Logon.login_edit()    # другая попытка


我收到这样的错误:

“MainWindow”对象没有属性“login_edit”

python
  • 1 个回答
  • 37 Views
Martin Hope
almaz
Asked: 2022-08-30 15:40:12 +0000 UTC

python如何正确比较工作表值与字典键

  • 1
list_symbols = ["EURUSDrfd", "GBPUSDrfd", "AUDUSDrfd","USDCADrfd"]   
dict_symbols = {"eurusd": 
                   {"price": 1.05},
                "gbpusd": 
                   {"price": 1.22},
                "audusd":
                   {"price": 1.09} }
     

for symbol in list_symbols:
    if symbol in list(dict_symbols.keys()):   # как осушествить проверку в цикле на подобие ??
        print(f"{symbol} find !")
    else:
        print(f"{symbol} not find !")

  • 列表的值与字典的键值不完全匹配,即部分相等。

示例:“EURUSDrfd”=“eurusd”

注意:列表中的数据下次可能会改变:它是“ EURUSDrfd”,它变成了“rfdEURUSD”

python
  • 2 个回答
  • 53 Views
Martin Hope
almaz
Asked: 2022-08-24 23:22:55 +0000 UTC

python如何处理异步(错误:线程'MainThread'中没有当前事件循环)

  • 0
# Класс, который я далее импортирую и вызову асинхронный метод этого класса для получения результата
class Async_Meta_Trader():
    "Класс для работы с торговым терминалом и данными: Класс Meta_Trader login и password, server\
    данные эти берем в последующем из файла конфигурации json"
    def __init__(self, login_user: int, password_user: str, server_user: str):
        self.login = login_user
        self.password = password_user
        self.server = server_user

    async def account_info(self) -> pd.DataFrame:
        "Метод для получения информации об торговом счете из терминала"
        if not mt5.initialize(login=self.login, password=self.password, server=self.server):
            logger.warning(f"initialize() failed connecting to account_trader MetaTrader5, error code = {mt5.last_error()}")
        else:
            print('Подключение к торговому счету успешно')
            account_info_dict = mt5.account_info()._asdict()
            df = pd.DataFrame(account_info_dict.items(), columns=['Key', 'Value'])  # конвертация 
            return df
import aiocron   # для выполнения задач по расписанию
import asyncio
from My_Class_functions import Meta_Trader   # импортировал класс в ко-м есть асин.метод account_info


Terminal = Meta_Trader(login_user=012313, password_user="test", server_user="test")
temp_df = asyncio.run(Terminal.account_info())    # получаю результат из асинх. метода, ко-й в далее вызовет ошибку в ниже следующей асин.функции

@aiocron.crontab(('*/1 * * * *'))   # декоратор для вызов асин. функции каждую минуту 
async def get_test():            # ??? здесь вызывает ошибку There is no current event loop in thread 'MainThread'                 # 
    print("run")
    await asyncio.sleep(2)


asyncio.get_event_loop().run_forever()

** 如何正确使用异步方法 :(

python async
  • 1 个回答
  • 73 Views
Martin Hope
almaz
Asked: 2022-08-05 00:04:59 +0000 UTC

python scikit-learn 如何正确模拟分类问题(随机森林)

  • 1

我有这个数据框:

指数 拉兹里亚德 年龄 薪水
一 2 22 30000
2 3 19 36000
3 四 三十 40000
四 5 25 47000

简而言之:该表包含薪水级别,其中存在依赖关系:类别越高,薪水越高。在我的例子中,由于某种原因,“年龄”特征的权重在预测中的作用比排名特征更大。输入新数据时问题听起来像这样(数字= 4,年龄= 17)给出的预测等于= 36000,尽管理论上存在类别依赖性,但由于某种原因,模型更多地考虑了权重“年龄”比“razryad”???或者我没有正确构建模型,或者我需要自己增加“razryad”的重量?尽管从理论上讲,模型本身应该发现这种对放电的依赖性

import pandas as pd
import numpy as np
import time
from sklearn.ensemble import RandomForestClassifier 

df_json = pd.read_json('dataframes//test_data.json')
X_test = df_json[['razryad', 'age']].reset_index(drop=True)    # 
y_test = df_json['salary']         #

model = RandomForestClassifier()    # выбираем модель обучения: Случайный лес класссификация
model.fit(X_test, y_test) # обучаем модель

# подаем новые данные для выдачи прогноза ожидаемой зарплаты
example_test = {'razryad': [4], 'age': [11]}

example_df_test = pd.DataFrame(example_test)
res = model.predict(example_df_test)    # предсказывает данные
print(f"\nПредсказанные данные:\n{res=}")

预测中的特征权重

python dataframe
  • 1 个回答
  • 44 Views
Martin Hope
almaz
Asked: 2022-08-02 15:04:07 +0000 UTC

python如何按日期时间字段合并两个数据帧(当日/月/年匹配时)

  • 0
import pandas as pd


df_H4['time'].dt.day   # день ...
df_H4['time'].dt.month
df_H4['time'].dt.year

df_H4_union = pd.merge(df_H4, df_daily, how='left', left_on='time', right_on='time')

有两个数据框:字段类型时间:日期时间,趋势:str/object

df_H4:

时间 趋势_H4
2022-02-18 16:00:00 下
2022-02-18 20:00:00 下

df_dayli:

时间 趋势日
2022-02-17 下
2022-02-18 向上

如果日/月/年匹配,如何通过“时间”键正确组合它们(左连接)?
有条件的:

df_H4['time'].dt.day = df_dayli['time'].dt.day
df_H4['time'].dt.month = df_dayli['time'].dt.day
...

df_result:结果应该是这样的

时间 趋势_H4 趋势日
2022-02-18 16:00:00 下 向上
2022-02-18 20:00:00 下 向上
python
  • 1 个回答
  • 27 Views
Martin Hope
almaz
Asked: 2022-07-20 23:37:32 +0000 UTC

python os.system 如何使用给定的字符串打开/输出 cmd 控制台

  • 0
import os

os.system("start cmd")  # открываем консоль и как туда передать определенную команду/строку 
                        # "cd c:\Users\Admin\"

在此处输入图像描述

python консоль
  • 1 个回答
  • 145 Views
Martin Hope
almaz
Asked: 2022-06-23 14:44:58 +0000 UTC

python如何获取异步函数的返回值

  • 2

如何获取异步函数的返回值

import asyncio

async def test(asd: bool):
    if asd is True:
        print("true")
        return True
    else:
        print("not true")
        return False

# наподобие обычной функции
res = test(asd=0)    
print(f"{res=}, {type(res)=}")
python python-3.x
  • 2 个回答
  • 543 Views
Martin Hope
almaz
Asked: 2022-07-08 23:54:56 +0000 UTC

如何进行这种 sql 查询,例如一张表中的汇总?

  • 0

数据库中有这样一张表,其中包含以百分比表示的月收益率

create table profits_month
(
    column_1    integer          not null,
    year        varchar          not null,
    month       varchar          not null,
    profit_loss double precision not null
);

测试数据:

INSERT INTO public.profits_month (column_1, year, month, profit_loss) VALUES (1, '2021', 'april', 2);
INSERT INTO public.profits_month (column_1, year, month, profit_loss) VALUES (2, '2021', 'may', 6);
INSERT INTO public.profits_month (column_1, year, month, profit_loss) VALUES (3, '2021', 'june', 1);
INSERT INTO public.profits_month (column_1, year, month, profit_loss) VALUES (4, '2021', 'july', 7);
INSERT INTO public.profits_month (column_1, year, month, profit_loss) VALUES (5, '2021', 'august', 0);
INSERT INTO public.profits_month (column_1, year, month, profit_loss) VALUES (6, '2021', 'semptember', -2);
INSERT INTO public.profits_month (column_1, year, month, profit_loss) VALUES (7, '2021', 'october', 15);
INSERT INTO public.profits_month (column_1, year, month, profit_loss) VALUES (8, '2021', 'november', 7);
INSERT INTO public.profits_month (column_1, year, month, profit_loss) VALUES (9, '2021', 'december', -1);
INSERT INTO public.profits_month (column_1, year, month, profit_loss) VALUES (10, '2022', 'january', 5);
  • 问题是如何进行sql查询,使最终结果为以下形式:
    上个月,三个月等的条件结果。
月数 summa_itogo
十 40
3 十一
一 5
sql
  • 1 个回答
  • 10 Views
Martin Hope
almaz
Asked: 2022-07-05 11:40:56 +0000 UTC

python为什么Lru_cache不适用于示例中的简单函数

  • 0

告诉我为什么не работает @lru_cache(来自functools)对于这么简单的功能,我想研究缓存,我举了一个简单的例子,它对我不起作用(python ~ 3.9)

from functools import lru_cache
import time

@lru_cache(maxsize=10)
def test(num):
    result = 0
    for i in range(num):
        result += i
    return result


start = time.time()
test(num=100000000)
end = time.time()
print(f"result 1: {end - start}")
print(test.cache_info())

我使用 lru_cache 装饰器或不使用它来执行该函数,它根本没有区别:/

python
  • 2 个回答
  • 10 Views
Martin Hope
almaz
Asked: 2022-07-01 18:32:34 +0000 UTC

html css如何正确定位页面上的元素

  • 1

有一个带有内部 h1 元素的 div 块,并且无法放置此元素,例如,在顶部/底部/左侧/或与相邻块相同的级别,该元素似乎位于下方,我可以' t 以我喜欢的任何位置或对齐方式定位它:/

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.3/Chart.js"></script>

  <title>Document</title>

</head>

<body>
  <div style="display: inline-block;">
    <canvas id="layanan" width="340px" height="340px"></canvas>
  </div>

  <div style="display: inline-block;">
    <h1> второй элемент </h1>
    <!-- как выравнивать данный элемент по вертикали/гор-ли -->
  </div>


  <div style="display: inline-block;">
    <canvas id="layanan_subbagian" width="440px" height="340px"></canvas>
  </div>
</body>


<script>
  $(function() {
    let ctx = document.getElementById("layanan").getContext('2d');
    let data = {
      datasets: [{
        data: {
          {
            data | safe
          }
        },
        backgroundColor: ['#696969', '#808080', '#A9A9A9', '#C0C0C0', '#D3D3D3', 'lightgreen', 'lightblue', 'red'],
      }],
      labels: {
        {
          labels | safe
        }
      }
    };
    let myDoughnutChart = new Chart(ctx, {
      type: 'pie',
      data: data,
      options: {
        responsive: false,
        maintainAspectRatio: false,
        legend: {
          position: 'bottom',
          labels: {
            boxWidth: 12
          }
        }
      }
    });

    let ctx_2 = document.getElementById("layanan_subbagian").getContext('2d');
    let data_2 = {
      datasets: [{
        data: {
          {
            data | safe
          }
        },
        backgroundColor: ['#696969', '#808080', '#A9A9A9', '#C0C0C0', '#D3D3D3', 'lightgreen', 'lightblue', 'red'],
      }],
      labels: {
        {
          labels | safe
        }
      }
    };
    let myDoughnutChart_2 = new Chart(ctx_2, {
      type: 'bar',
      data: data_2,
      options: {
        responsive: false,
        maintainAspectRatio: false,
        legend: {
          position: 'bottom',
          labels: {
            boxWidth: 12
          }
        }
      }
    });
  });
</script>

</html>

html
  • 1 个回答
  • 10 Views
Martin Hope
almaz
Asked: 2022-07-01 20:02:49 +0000 UTC

html css + js如何并排放置两个图表(Chart_js)而不是一个在另一个下方

  • 0

$(function() {
  let ctx = document.getElementById("layanan").getContext('2d');
  let data = {
    datasets: [{
      data: {
        {
          data | safe
        }
      },
      backgroundColor: ['#696969', '#808080', '#A9A9A9', '#C0C0C0', '#D3D3D3', 'lightgreen', 'lightblue', 'red'],
    }],
    labels: {
      {
        labels | safe
      }
    }
  };
  let myDoughnutChart = new Chart(ctx, {
    type: 'pie',
    data: data,
    options: {
      responsive: false,
      maintainAspectRatio: false,
      legend: {
        position: 'bottom',
        labels: {
          boxWidth: 12
        }
      }
    }
  });

  let ctx_2 = document.getElementById("layanan_subbagian").getContext('2d');
  let data_2 = {
    datasets: [{
      data: {
        {
          data | safe
        }
      },
      backgroundColor: ['#696969', '#808080', '#A9A9A9', '#C0C0C0', '#D3D3D3', 'lightgreen', 'lightblue', 'red'],
    }],
    labels: {
      {
        labels | safe
      }
    }
  };
  let myDoughnutChart_2 = new Chart(ctx_2, {
    type: 'bar',
    data: data_2,
    options: {
      responsive: false,
      maintainAspectRatio: false,
      legend: {
        position: 'bottom',
        labels: {
          boxWidth: 12
        }
      }
    }
  });
});
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.3/Chart.js"></script>

<div class="container">
  <div class="row">
    <div class="col-6">
      <canvas id="layanan" width="340px" height="340px"></canvas>
    </div>
    <div class="col">
      <canvas id="layanan_subbagian" width="240px" height="240px"></canvas>
    </div>
  </div>
</div>

javascript
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5