RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

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

全部问题

Martin Hope
vk.com.PMvanilla
Asked: 2025-04-06 13:37:14 +0000 UTC

如何通过执行更新来更新具有不同条件的多行

  • 5

如何将以下代码组合成一个执行:

`UPDATE ${nameTable} SET p1 = null, p2 = null, p3 = null, p4 = null, p5 = null, p6 = null
WHERE target = 'pets' || target = 'value' || target = 'place'`;
`UPDATE ${nameTable} SET p1 = null, p2 = null, p3 = null, p4 = null, p5 = null WHERE target = 'quest'`

请指教,我将不胜感激。

mysql
  • 1 个回答
  • 25 Views
Martin Hope
dynamic.aerospace.inc
Asked: 2025-04-06 08:41:31 +0000 UTC

通过公式处理json数据并输入数据到QTabWidget表中时出错

  • 5

我编写了一个代码来与币安上的硬币价格数据进行交互,该程序接收一个包含所有硬币价值的.json
文件作为输入。 之后它将这些数据加载到第二个表中。

用户必须输入公式,lineEdit并且公式及其结果应该出现在第二个表中,但由于某种原因,即使对于正确的公式,代码也会返回错误。
如何修复这个问题?

BinanceTracker.py:

from PyQt6 import QtCore, QtGui, QtWidgets
from PyQt6.QtWidgets import QTableWidgetItem, QMessageBox
from data_loader import load_data_to_table  # Import the data loader


class Ui_BinanceTracker(object):
    def setupUi(self, BinanceTracker):
        BinanceTracker.setObjectName("BinanceTracker")
        BinanceTracker.resize(640, 480)
        BinanceTracker.setStyleSheet("QPushButton {\n"
                                      "    height: 50px; \n"
                                      "    width: 120px;\n"
                                      "    font: 9pt \"Segoe UI\";\n"
                                      "}\n"
                                      "QLineEdit {\n"
                                      "    height: 50px; \n"
                                      "    width: 120px; \n"
                                      "    font: 9pt \"Segoe UI\";\n"
                                      "}\n"
                                      "")
        self.centralwidget = QtWidgets.QWidget(parent=BinanceTracker)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
        self.gridLayout.setObjectName("gridLayout")
        self.tabWidget = QtWidgets.QTabWidget(parent=self.centralwidget)
        self.tabWidget.setObjectName("tabWidget")
        self.tab = QtWidgets.QWidget()
        self.tab.setObjectName("tab")
        self.gridLayout_2 = QtWidgets.QGridLayout(self.tab)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.tableWidget = QtWidgets.QTableWidget(parent=self.tab)
        self.tableWidget.setObjectName("tableWidget")
        self.tableWidget.setColumnCount(2)
        self.tableWidget.setHorizontalHeaderLabels(["Формула", "Результат"])
        self.tableWidget.setRowCount(0)
        self.gridLayout_2.addWidget(self.tableWidget, 0, 0, 1, 2)
        self.groupBox = QtWidgets.QGroupBox(parent=self.tab)
        self.groupBox.setObjectName("groupBox")
        self.gridLayout_4 = QtWidgets.QGridLayout(self.groupBox)
        self.gridLayout_4.setObjectName("gridLayout_4")
        self.lineEdit = QtWidgets.QLineEdit(parent=self.groupBox)
        self.lineEdit.setObjectName("lineEdit")
        self.gridLayout_4.addWidget(self.lineEdit, 0, 0, 1, 1)
        self.pushButton = QtWidgets.QPushButton(parent=self.groupBox)
        self.pushButton.setObjectName("pushButton")
        self.gridLayout_4.addWidget(self.pushButton, 0, 1, 1, 1)
        self.pushButton_3 = QtWidgets.QPushButton(parent=self.groupBox)
        self.pushButton_3.setObjectName("pushButton_3")
        self.gridLayout_4.addWidget(self.pushButton_3, 0, 2, 1, 1)
        self.gridLayout_2.addWidget(self.groupBox, 1, 0, 1, 2)
        self.groupBox_2 = QtWidgets.QGroupBox(parent=self.tab)
        self.groupBox_2.setObjectName("groupBox_2")
        self.gridLayout_5 = QtWidgets.QGridLayout(self.groupBox_2)
        self.gridLayout_5.setObjectName("gridLayout_5")
        self.lineEdit_2 = QtWidgets.QLineEdit(parent=self.groupBox_2)
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.gridLayout_5.addWidget(self.lineEdit_2, 0, 0, 1, 1)
        self.lineEdit_3 = QtWidgets.QLineEdit(parent=self.groupBox_2)
        self.lineEdit_3.setObjectName("lineEdit_3")
        self.gridLayout_5.addWidget(self.lineEdit_3, 0, 1, 1, 1)
        self.pushButton_2 = QtWidgets.QPushButton(parent=self.groupBox_2)
        self.pushButton_2.setObjectName("pushButton_2")
        self.gridLayout_5.addWidget(self.pushButton_2, 0, 2, 1, 1)
        self.gridLayout_2.addWidget(self.groupBox_2, 2, 0, 1, 2)
        self.tabWidget.addTab(self.tab, "")
        self.tab_2 = QtWidgets.QWidget()
        self.tab_2.setObjectName("tab_2")
        self.gridLayout_3 = QtWidgets.QGridLayout(self.tab_2)
        self.gridLayout_3.setObjectName("gridLayout_3")
        self.tableWidget_2 = QtWidgets.QTableWidget(parent=self.tab_2)
        self.tableWidget_2.setObjectName("tableWidget_2")
        self.tableWidget_2.setColumnCount(2)
        self.tableWidget_2.setHorizontalHeaderLabels(["Пара", "Цена"])
        self.tableWidget_2.setRowCount(0)
        self.gridLayout_3.addWidget(self.tableWidget_2, 0, 0, 1, 1)
        self.tabWidget.addTab(self.tab_2, "")
        self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1)
        BinanceTracker.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(parent=BinanceTracker)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 640, 22))
        self.menubar.setObjectName("menubar")
        BinanceTracker.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(parent=BinanceTracker)
        self.statusbar.setObjectName("statusbar")
        BinanceTracker.setStatusBar(self.statusbar)

        self.retranslateUi(BinanceTracker)
        self.tabWidget.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(BinanceTracker)

        # Load data into tableWidget_2
        num_pairs_per_row = 6  # Change this to the desired number of pairs per row
        load_data_to_table(self.tableWidget_2, 'price.json', num_pairs_per_row)

        # Connect the pushButton to a function that will handle the formula
        self.pushButton.clicked.connect(self.calculate_formula)

    def calculate_formula(self):
        # Получаем формулу из lineEdit
        formula = self.lineEdit.text().strip()

        # Разделяем формулу на части (например, ETHBTC*BNBBTC -> ['ETHBTC', 'BNBBTC'])
        parts = formula.replace(' ', '').split('+')  # Сначала разбиваем по '+'

        # Инициализируем результат
        result = 0.0
        valid_formula = True

        # Вычисляем результат
        for part in parts:
            sub_parts = part.split('-')  # Разбиваем по '-'
            sub_result = 0.0
            for sub_part in sub_parts:
                if '*' in sub_part or '/' in sub_part:  # Если есть умножение или деление
                    # Разбиваем по '*' и '/'
                    factors = []
                    for factor in sub_part.replace('-', ' -').replace('+', ' +').split():
                        if factor:  # Проверяем, что не пустая строка
                            factors.append(factor)
                    # Вычисляем результат для текущей подчасти
                    try:
                        sub_result = eval('*'.join(factors))  # Используем eval для вычисления
                    except Exception as e:
                        valid_formula = False
                        break
                else:
                    # Если это просто монета, ищем ее цену
                    found = False
                    for row_index in range(self.tableWidget_2.rowCount()):
                        for col_index in range(0, self.tableWidget_2.columnCount(), 2):
                            if self.tableWidget_2.item(row_index, col_index) and self.tableWidget_2.item(row_index,
                                                                                                         col_index).text() == sub_part:
                                price_item = self.tableWidget_2.item(row_index, col_index + 1)
                                if price_item:
                                    sub_result += float(price_item.text())
                                    found = True
                                break
                    if not found:
                        valid_formula = False
                        break

            result += sub_result

        # Если формула корректна, добавляем результат в tableWidget
        if valid_formula:
            current_row_count = self.tableWidget.rowCount()
            self.tableWidget.setRowCount(current_row_count + 1)  # Увеличиваем количество строк

            # Заполняем строку формулой и результатом
            self.tableWidget.setItem(current_row_count, 0, QTableWidgetItem(formula))  # Добавляем формулу
            self.tableWidget.setItem(current_row_count, 1, QTableWidgetItem(str(result)))  # Добавляем результат
        else:
            # Показываем сообщение об ошибке, если формула некорректна
            QMessageBox.warning(self.centralwidget, "Ошибка", "Некорректная формула или монета не найдена.")

    def retranslateUi(self, BinanceTracker):
        _translate = QtCore.QCoreApplication.translate
        BinanceTracker.setWindowTitle(_translate("BinanceTracker", "BinanceTracker V1"))
        self.groupBox.setTitle(_translate("BinanceTracker", "Операции"))
        self.pushButton.setText(_translate("BinanceTracker", "Добавить операцию"))
        self.lineEdit.setPlaceholderText(_translate("BinanceTracker", "Добавьте отслеживаемую функцию, например: ETHBTC*BNBBTC"))
        self.pushButton_3.setText(_translate("BinanceTracker", "Удалить операцию"))
        self.groupBox_2.setTitle(_translate("BinanceTracker", "Настройки трекера"))
        self.lineEdit_2.setPlaceholderText(_translate("BinanceTracker", "Минимальное значение:"))
        self.lineEdit_3.setPlaceholderText(_translate("BinanceTracker", "Максимальное значение:"))
        self.pushButton_2.setText(_translate("BinanceTracker", "Сохранить значения"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("BinanceTracker", "Отслеживаемые монеты"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("BinanceTracker", "Полный список монет"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    BinanceTracker = QtWidgets.QMainWindow()
    ui = Ui_BinanceTracker()
    ui.setupUi(BinanceTracker)
    BinanceTracker.show()
    sys.exit(app.exec())

数据加载器.py:

import json
from PyQt6.QtWidgets import QTableWidgetItem


def load_data_to_table(table_widget, json_file_path, num_pairs_per_row):
    with open(json_file_path, 'r') as file:
        data = json.load(file)


    num_columns = num_pairs_per_row * 2
    table_widget.setColumnCount(num_columns)

    # Set horizontal header labels
    headers = []
    for i in range(num_pairs_per_row):
        headers.append(f"Монета {i + 1}")
        headers.append(f"Цена {i + 1}")
    table_widget.setHorizontalHeaderLabels(headers)

    num_rows = -(-len(data) // num_pairs_per_row)

    table_widget.setRowCount(num_rows)

    for index, item in enumerate(data):
        row_index = index // num_pairs_per_row
        col_index = (index % num_pairs_per_row) * 2
        table_widget.setItem(row_index, col_index, QTableWidgetItem(item['symbol']))  # Symbol
        table_widget.setItem(row_index, col_index + 1, QTableWidgetItem(item['price']))  # Price

包含测试数据的文件: https://drive.google.com/file/d/15Jb82HgrRUalP-YyVQpx_x2TRO_fsbZA/view?usp =sharing

python
  • 1 个回答
  • 44 Views
Martin Hope
user702883
Asked: 2025-04-05 20:08:10 +0000 UTC

如何创建一个执行 python 程序功能的 .bat 文件?

  • 5

我需要为 DOS 创建一个批处理文件来模拟 Python 算法:

x = 1
while True:
    x = x * 2
    print (x)
python
  • 2 个回答
  • 54 Views
Martin Hope
iusevoidbtw
Asked: 2025-04-05 15:07:59 +0000 UTC

如何实现这样的覆盖?

  • 6

我想要和https://sbermobile.ru一样的笑话

当您向下滚动时,第 2 部分与另一部分(第 1 部分)重叠,而当您向下滚动时,第 3 部分从文本下方出来。如何实现这一点?另外,问题是如何使各个部分的角都呈现相同的圆角,就像在 PC 上有一个圆角,在手机上有一个圆角一样。

我的网站结构如下

<html><head></head><body> 
<nav></nav> 
<section id="up">text1</section> 
<section id="center">text2</section> 
<section id="down">text3</section> 
<footer></footer></body></html>
  1. 其中 up 是 SberMobile 网站上的上部
  2. center - 进攻的中间位置
  3. 向下 - 从中​​心下面爬出来的下部
javascript
  • 1 个回答
  • 58 Views
Martin Hope
heyman
Asked: 2025-04-05 04:44:28 +0000 UTC

lambda函数与map结合的输出

  • 5

有一段代碼:

nums = [6, 63, 10, 27, 10, 4, 7]
ost = [3, 7, 9]
ostatok = list(map(lambda pair: pair[0] % pair[1], [(n, o) for n in nums for o in ost]))
result = list(map(lambda x: (f"\nчисло {nums[y]} делится на {ost}" for y in range(len(nums))) if x == 0 else "", [(n) for n in ostatok]))
print(result)

结论:

[<generator object <lambda>.<locals>.<genexpr> at 0x000002526011E180>, '', '', <generator object <lambda>.<locals>.<genexpr> at 
0x000002526011DF50>, <generator object <lambda>.<locals>.<genexpr> at 0x000002526011DEE0>, <generator object <lambda>.<locals>.<genexpr> at 0x000002526011DFC0>, '', '', '', <generator object <lambda>.<locals>.<genexpr> at 0x000002526011E0A0>, '', <generator object <lambda>.<locals>.<genexpr> at 0x000002526011C510>, '', '', '', '', '', '', '', <generator object <lambda>.<locals>.<genexpr> at 0x000002526011E2D0>, '']

应该输出类似这样的内容:

число 6 делится на 3
число 63 делится на 7

ETC。

python
  • 1 个回答
  • 49 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