Python3.7+PyQt5 pyuic5将.ui文件转换为.py文件、Python读取配置文件、生成日志

1.实际开发项目时,是使用Qt Designer来设计UI界面,得到一个.ui的文件,然后利用PyQt5安装时自带的工具pyuic5将.ui文件转换为.py文件:

pyuic5 -o mywindow.py mywindow.ui #先是py文件名,再是ui文件名

样式图 QT5 UI:

转换的pyqt5:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'ActionTools.ui'
#
# Created by: PyQt5 UI code generator 5.15.2
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.
import socket

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *
import sys
import io
import os
import datetime
import random
from subprocess import Popen,PIPE
from threading import Thread
import time
import configparser

class Ui_ActionWinfrm(QWidget):
    def __init__(self):
        super(Ui_ActionWinfrm,self).__init__()
        self.config=configparser.ConfigParser()#创建对象
        self.EmployeeInfo=[]#员工信息
        self.TestServer=[]#测试服务器设置
        self.MesServer=[]#Mes服务器
        self.ProductInfo=[]#产品信息
        self.config.read("./conf/config.conf",encoding="utf-8")#读取配置文件,如果配置文件不存在创建
        self.Err="NULL"

        #员工管理信息
        self.EmployeeInfo.append(self.config.get('EmployeeInfo','Employee'))#工号
        self.EmployeeInfo.append(self.config.get('EmployeeInfo','Line'))#线体

        #测试服务器设置
        self.TestServer.append(self.config.get('TestServer','host'))
        self.TestServer.append(self.config.get('TestServer','prot'))
        self.TestServer.append(self.config.get('TestServer','user'))
        self.TestServer.append(self.config.get('TestServer','password'))

        #连接服务器
        self.host = self.TestServer[0]
        self.prot = self.TestServer[1]

        #MES服务器设置
        self.MesServer.append(self.config.get('MesServer','url'))

        #产品信息
        self.ProductInfo.append(self.config.get('ProductInfo','ClientName'))
        self.ProductInfo.append(self.config.get('ProductInfo','ProductName'))
        self.ProductInfo.append(self.config.get('ProductInfo','OrderInfo'))
        self.ProductInfo.append(self.config.get('ProductInfo','OrderTotal'))
        self.ProductInfo.append(self.config.get('ProductInfo','CompleteOrder'))

        self.data=''
        self.setupUi()
        print(self.host + "," + self.prot)
        self.Client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)


    def setupUi(self):
        self.setObjectName("ActionWinfrm")
        self.resize(1000, 943)
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(12)
        self.setFont(font)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("./Imag/020.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.setWindowIcon(icon)
        self.verticalLayout = QtWidgets.QVBoxLayout(self)
        self.verticalLayout.setObjectName("verticalLayout")
        self.frame_5 = QtWidgets.QFrame(self)
        self.frame_5.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_5.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_5.setObjectName("frame_5")
        self.frame_6 = QtWidgets.QFrame(self.frame_5)
        self.frame_6.setGeometry(QtCore.QRect(0, -1, 981, 41))
        self.frame_6.setStyleSheet("color: rgb(85, 255, 127);")
        self.frame_6.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_6.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_6.setObjectName("frame_6")
        self.lbl_WinTitle = QtWidgets.QLabel(self.frame_6)
        self.lbl_WinTitle.setGeometry(QtCore.QRect(390, 0, 351, 41))
        font = QtGui.QFont()
        font.setPointSize(26)
        self.lbl_WinTitle.setFont(font)
        self.lbl_WinTitle.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl_WinTitle.setObjectName("lbl_WinTitle")
        self.lbl_loginfo = QtWidgets.QLabel(self.frame_6)
        self.lbl_loginfo.setGeometry(QtCore.QRect(10, 0, 161, 41))
        self.lbl_loginfo.setText("")
        self.lbl_loginfo.setPixmap(QtGui.QPixmap("./Imag/logo.jpg"))
        self.lbl_loginfo.setObjectName("lbl_loginfo")
        self.frame_7 = QtWidgets.QFrame(self.frame_5)
        self.frame_7.setGeometry(QtCore.QRect(0, 50, 981, 80))
        self.frame_7.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_7.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_7.setObjectName("frame_7")
        self.label = QtWidgets.QLabel(self.frame_7)
        self.label.setGeometry(QtCore.QRect(10, 10, 81, 16))
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setObjectName("label")
        self.label_3 = QtWidgets.QLabel(self.frame_7)
        self.label_3.setGeometry(QtCore.QRect(340, 10, 81, 16))
        self.label_3.setAlignment(QtCore.Qt.AlignCenter)
        self.label_3.setObjectName("label_3")
        self.label_4 = QtWidgets.QLabel(self.frame_7)
        self.label_4.setGeometry(QtCore.QRect(660, 10, 81, 16))
        self.label_4.setAlignment(QtCore.Qt.AlignCenter)
        self.label_4.setObjectName("label_4")
        self.label_2 = QtWidgets.QLabel(self.frame_7)
        self.label_2.setGeometry(QtCore.QRect(10, 50, 81, 16))
        self.label_2.setAlignment(QtCore.Qt.AlignCenter)
        self.label_2.setObjectName("label_2")
        self.label_5 = QtWidgets.QLabel(self.frame_7)
        self.label_5.setGeometry(QtCore.QRect(340, 50, 81, 16))
        self.label_5.setAlignment(QtCore.Qt.AlignCenter)
        self.label_5.setObjectName("label_5")
        self.label_6 = QtWidgets.QLabel(self.frame_7)
        self.label_6.setGeometry(QtCore.QRect(660, 50, 81, 16))
        self.label_6.setAlignment(QtCore.Qt.AlignCenter)
        self.label_6.setObjectName("label_6")
        self.label_7 = QtWidgets.QLabel(self.frame_7)
        self.label_7.setGeometry(QtCore.QRect(820, 50, 91, 20))
        self.label_7.setAlignment(QtCore.Qt.AlignCenter)
        self.label_7.setObjectName("label_7")
        self.lbl_ClientName = QtWidgets.QLabel(self.frame_7)
        self.lbl_ClientName.setGeometry(QtCore.QRect(100, 10, 151, 16))
        self.lbl_ClientName.setStyleSheet("color: rgb(255, 170, 0);")
        self.lbl_ClientName.setObjectName("lbl_ClientName")
        self.lbl_ProductName = QtWidgets.QLabel(self.frame_7)
        self.lbl_ProductName.setGeometry(QtCore.QRect(420, 10, 54, 12))
        self.lbl_ProductName.setStyleSheet("color: rgb(255, 170, 0);")
        self.lbl_ProductName.setObjectName("lbl_ProductName")
        self.lbl_OrderInfo = QtWidgets.QLabel(self.frame_7)
        self.lbl_OrderInfo.setGeometry(QtCore.QRect(730, 10, 101, 16))
        self.lbl_OrderInfo.setAutoFillBackground(False)
        self.lbl_OrderInfo.setStyleSheet("color: rgb(255, 170, 0);")
        self.lbl_OrderInfo.setObjectName("lbl_OrderInfo")
        self.lbl_Employee = QtWidgets.QLabel(self.frame_7)
        self.lbl_Employee.setGeometry(QtCore.QRect(90, 50, 91, 16))
        self.lbl_Employee.setStyleSheet("color: rgb(255, 170, 0);")
        self.lbl_Employee.setObjectName("lbl_Employee")
        self.lbl_Line = QtWidgets.QLabel(self.frame_7)
        self.lbl_Line.setGeometry(QtCore.QRect(420, 50, 81, 16))
        self.lbl_Line.setStyleSheet("color: rgb(255, 170, 0);")
        self.lbl_Line.setObjectName("lbl_Line")
        self.lbl_OrderTotal = QtWidgets.QLabel(self.frame_7)
        self.lbl_OrderTotal.setGeometry(QtCore.QRect(730, 50, 54, 12))
        self.lbl_OrderTotal.setStyleSheet("color: rgb(255, 170, 0);")
        self.lbl_OrderTotal.setObjectName("lbl_OrderTotal")
        self.lbl_COrderNum = QtWidgets.QLabel(self.frame_7)
        self.lbl_COrderNum.setGeometry(QtCore.QRect(910, 50, 54, 19))
        self.lbl_COrderNum.setStyleSheet("color: rgb(255, 170, 0);")
        self.lbl_COrderNum.setObjectName("lbl_COrderNum")
        self.textEdit = QtWidgets.QTextEdit(self.frame_5)
        self.textEdit.setGeometry(QtCore.QRect(0, 40, 981, 1))
        self.textEdit.setObjectName("textEdit")
        self.TW_TestItemList = QtWidgets.QTableWidget(self.frame_5)
        self.TW_TestItemList.setGeometry(QtCore.QRect(0, 180, 981, 631))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.TW_TestItemList.setFont(font)
        self.TW_TestItemList.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
        self.TW_TestItemList.setShowGrid(False)
        self.TW_TestItemList.setObjectName("TW_TestItemList")
        self.TW_TestItemList.setColumnCount(3)
        self.TW_TestItemList.setRowCount(0)
        self.item = QtWidgets.QTableWidgetItem()
        self.item.setTextAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignTop)
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(12)
        self.item.setFont(font)
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap("Imag/NewAdd.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.item.setIcon(icon1)
        self.TW_TestItemList.setHorizontalHeaderItem(0, self.item)
        self.item = QtWidgets.QTableWidgetItem()
        self.item.setTextAlignment(QtCore.Qt.AlignCenter)
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(12)
        self.item.setFont(font)
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap("Imag/TestArgs.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.item.setIcon(icon2)
        self.TW_TestItemList.setHorizontalHeaderItem(1, self.item)
        self.item = QtWidgets.QTableWidgetItem()
        self.item.setTextAlignment(QtCore.Qt.AlignCenter)
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setPointSize(12)
        self.item.setFont(font)
        icon3 = QtGui.QIcon()
        icon3.addPixmap(QtGui.QPixmap("Imag/Result.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.item.setIcon(icon3)
        self.TW_TestItemList.setHorizontalHeaderItem(2, self.item)
        self.TW_TestItemList.horizontalHeader().setMinimumSectionSize(40)
        self.TW_TestItemList.verticalHeader().setDefaultSectionSize(50)
        self.TW_TestItemList.verticalHeader().setMinimumSectionSize(50)
        self.label_8 = QtWidgets.QLabel(self.frame_5)
        self.label_8.setGeometry(QtCore.QRect(10, 140, 112, 25))
        self.label_8.setObjectName("label_8")
        self.lbl_TestResult = QtWidgets.QLabel(self.frame_5)
        self.lbl_TestResult.setGeometry(QtCore.QRect(0, 815, 981, 111))
        self.lbl_TestResult.setStyleSheet("background-color: rgb(0, 0, 0);\n"
        "font: 22pt \"Arial\";\n"
        "color: rgb(255, 255, 0);")
        self.lbl_TestResult.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl_TestResult.setObjectName("lbl_TestResult")
        self.lbl_Isn = QtWidgets.QLineEdit(self.frame_5)
        self.lbl_Isn.setGeometry(QtCore.QRect(130, 140, 800, 31))
        self.lbl_Isn.setObjectName("lbl_Isn")
        self.verticalLayout.addWidget(self.frame_5)
        self.retranslateUi()
        QtCore.QMetaObject.connectSlotsByName(self)
        self.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint | QtCore.Qt.WindowCloseButtonHint)  # 只显示最小化按钮和关闭按钮
        self.lbl_Isn.setFocus()

    def retranslateUi(self):
        self._translate = QtCore.QCoreApplication.translate
        self.setWindowTitle(self._translate("ActionWinfrm", "【T.e.s.t】"))
        self.lbl_WinTitle.setText(self._translate("ActionWinfrm", "国产系统在线激活工具"))
        self.label.setText(self._translate("ActionWinfrm", "客户名称:"))
        self.label_3.setText(self._translate("ActionWinfrm", "产品名称:"))
        self.label_4.setText(self._translate("ActionWinfrm", "订单号:"))
        self.label_2.setText(self._translate("ActionWinfrm", "员工工号:"))
        self.label_5.setText(self._translate("ActionWinfrm", "线          体:"))
        self.label_6.setText(self._translate("ActionWinfrm", "订单数:"))
        self.label_7.setText(self._translate("ActionWinfrm", "完成订单数:"))
        self.lbl_ClientName.setText(self.ProductInfo[0])#客户名称
        self.lbl_ProductName.setText(self.ProductInfo[1])#产品名称
        self.lbl_OrderInfo.setText(self.ProductInfo[2])#订单信息
        self.lbl_OrderTotal.setText(self.ProductInfo[3])#订单总数
        self.lbl_COrderNum.setText(self.ProductInfo[4])#完成订单数
        self.lbl_Employee.setText(self.EmployeeInfo[0])#工号
        self.lbl_Line.setText(self.EmployeeInfo[1])#线体
        self.item = self.TW_TestItemList.horizontalHeaderItem(0)
        self.item.setText(self._translate("ActionWinfrm", "项目名称"))
        self.item = self.TW_TestItemList.horizontalHeaderItem(1)
        self.item.setText(self._translate("ActionWinfrm", "测试参数"))
        self.item = self.TW_TestItemList.horizontalHeaderItem(2)
        self.item.setText(self._translate("ActionWinfrm", "测试结果"))
        self.TW_TestItemList.setColumnWidth(0,300)
        self.TW_TestItemList.setColumnWidth(1, 370)
        self.TW_TestItemList.setColumnWidth(2, 300)
        self.TW_TestItemList.setShowGrid(False)#是否显示网线
        self.label_8.setText(self._translate("ActionWinfrm", "扫描整机条码:"))
        self.lbl_TestResult.setText(self._translate("ActionWinfrm", "待测试"))

    def Center(self):#定义一个函数使得函数窗口居中显示
        #获取屏幕坐标系
        self.screen=QDesktopWidget().screenGeometry()
        #获取窗口坐标系
        self.size=self.geometry()
        self.newLeft=(self.screen.width()-self.size.width())/2
        self.newTop=(self.screen.height()-self.size.height())/2.7
        self.move(int(self.newLeft),int(self.newTop))

    def Connect(self,message):
        try:
            self.Client_socket.connect(self.host,int(self.port))
            self.lbl_TestResult.setText("Connected To Server..")
            self.lbl_TestResult.setForeground(QtGui.QColor(51, 204, 51))
            self.Client_socket.sendall(message.encode())
            self.data=self.Client_socket.recv(1024)
        except Exception as e:
            self.lbl_TestResult.setText("Connected To Server Err:"+str(e))
            self.lbl_TestResult.setStyleSheet("color:red")
            return False
        self.Client_socket.close()
        return True

if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = Ui_ActionWinfrm()
    win.Center()
    win.show()
    #win.Client('10.2.230.10', 8888)
    win.Connect('tell me the product name and position:00E04C060621')
    sys.exit(app.exec_())

效果:

2.Python学习之读取配置文件:

初始配置文件test.conf:

步骤1:导入配置文件模块

import configparser

步骤2:创建配置文件对象

config = configparser.ConfigParser()

步骤3:读取配置文件
在这一步中,我们将读取配置文件。配置文件通常存储在.ini或.conf文件中。

config.read('config.ini')

步骤4:获取配置选项

option_value = config.get('section_name', 'option_name')

步骤5:修改配置选项

config.set('section_name', 'option_name', 'new_value')

步骤6:保存配置文件

with open('config.ini', 'w') as config_file:
    config.write(config_file)

*.展正读取confg的实列:

3.生成日志:

1.创建日志记录器

import logging

# 创建一个日志记录器实例
logger = logging.getLogger('my_logger')

2 设置日志记录级别

logger.setLevel(logging.DEBUG)

使用setLevel()方法设置日志记录的级别,可以根据需要进行调整。常用的日志级别有:

logging.DEBUG:最详细的日志信息,用于调试程序。
logging.INFO:一般的日志信息,用于确认程序正常运行。
logging.WARNING:警告信息,表明程序可能出现问题。
logging.ERROR:错误信息,程序出现错误但仍然可以继续运行。
logging.CRITICAL:严重错误信息,程序无法继续运行。

3.创建文件处理器

file_handler = logging.FileHandler('log.txt')

4.设置文件处理器的格式

formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)

5.将处理器添加到记录器中

logger.addHandler(file_handler)

6.输出日志信息

logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/163612.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

端口号大揭秘:网络世界的“门牌号”有多牛?

大家好,今天我们来聊一聊网络中的端口号。如果你以为端口号只是冷冰冰的数字,那你就大错特错了。端口号,这些看似枯燥的数字背后,隐藏着一个个生动的故事。 1. 80/tcp - HTTP:数字版的美食街 首先,让我们迈…

6.9平衡二叉树(LC110-E)

绝对值函数:abs() 算法: 高度和深度的区别: 节点的高度:节点到叶子节点的距离(从下往上) 节点的深度:节点到根节点的距离(从上往下) 逻辑:一个平衡二叉树…

对象与this

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 最近想再聊聊Java的对象…

JVM 调优指南

文章目录 为什么要学 JVM一、JVM 整体布局二、Class 文件规范三、类加载模块四、执行引擎五、GC 垃圾回收1 、JVM内存布局2 、 JVM 有哪些主要的垃圾回收器?3 、分代垃圾回收工作机制 六、对 JVM 进行调优的基础思路七、 GC 情况分析实例 JVM调优指南 -- 楼兰 ​ JV…

系列七、GC垃圾回收【四大垃圾算法-标记压缩算法】

一、原理 在整理压缩阶段,不再对标记的对象回收,而是通过所有存活对象都向一端移动。可以看到,标记的存活对象将会被整理,按照内存地址依次排列。如此一来,当我们需要给新对象分配内存时,JVM只需要持有一个…

永久关机windows系统自动更新

1、打开cmd执行 reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" /v FlightSettingsMaxPauseDays /t reg_dword /d 3000 /f2、设置,打开windows更新高级选项 修改暂停日期,可长达十年。 3、你小子

解锁数据安全之门:探秘迅软DSE的文件权限控制功能

企业管理者在进行数据安全管控时通常只关注到文件的加密方式,却忽略了以下问题:对于企业内部文档,根据其所承载的涉密程度不同,重要程度也不相同,需要由不同涉密等级的的人员进行处理,这就需要对涉密文档和…

战神传奇【我本沉默精修版】win服务端+双端+充值后台+架设教程

搭建资源下载:战神传奇【我本沉默精修版】win服务端双端充值后台架设教程-海盗空间

详解Java设计模式之职责链模式

原文:详解Java设计模式之职责链模式_java_脚本之家 责任链模式是一种行为设计模式,使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,文中通过代码示例给大家介绍的非常详细,需要的朋友可以参考下 − 目…

TG Pro v2.87(mac温度风扇速度控制工具)

TG Pro 是适用于 macOS 的温度和风扇速度控制工具,可让您监控 Mac 组件(例如 CPU 和 GPU)的温度和风扇速度。如果您担心 Mac 过热或想要手动调整风扇速度以降低噪音水平,这将特别有用。 除了温度和风扇监控,TG Pro 还…

基于截图页面生成前端项目

前两天,在群里看见一个视频,视频中,作者截图twitter首页,然后使用截图直接生成与截图布局非常相近的前端项目,效果还是比较惊艳的。 今天陪老婆回老家,路上clone这个项目的代码到本地,学习了一下…

回归预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的数据回归预测

回归预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的数据回归预测 目录 回归预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的数据回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现HPO-ELM猎食者算法优化极限学习机的数据回归预测(…

Bert学习笔记(简单入门版)

目 录 一、基础架构 二、输入部分 三、预训练:MLMNSP 3.1 MLM:掩码语言模型 3.1.1 mask模型缺点 3.1.2 mask的概率问题 3.1.3 mask代码实践 3.2 NSP 四、如何微调Bert 五、如何提升BERT下游任务表现 5.1 一般做法 5.2 如何在相同领域数据中进…

037、目标检测-算法速览

之——常用算法速览 目录 之——常用算法速览 杂谈 正文 1.区域卷积神经网络 - R-CNN 2.单发多框检测SSD,single shot detection 3.yolo 杂谈 快速过一下目标检测的各类算法。 正文 1.区域卷积神经网络 - R-CNN region_based CNN,奠基性的工作。…

[C++历练之路]vector的介绍以及底层模拟实现

W...Y的主页 😊 代码仓库分享 💕 🍔前言: 我们学习了STL中的string以及其所有重要接口并进行了模拟实现,但是STL中包含的内容不止于此。学习了string之后继续学习STL中的vector,学习成本会大大降低&#…

CentOS7 安装mysql8(离线安装)postgresql14(在线安装)

注:linux系统为vmware虚拟机,和真实工作环境可能有出入,不过正因如此我暴露了NAT转出的IP也没什么大碍 引言 postgresql与mysql目前都是非常受人欢迎的两大数据库,其各有各的优势,初学者先使用简单一张图来说明两者区…

【算法挨揍日记】day31——673. 最长递增子序列的个数、646. 最长数对链

673. 最长递增子序列的个数 673. 最长递增子序列的个数 题目解析: 给定一个未排序的整数数组 nums , 返回最长递增子序列的个数 。 注意 这个数列必须是 严格 递增的。 解题思路: 算法思路: 1. 状态表⽰: 先尝试…

取数游戏2(动态规划java)

取数游戏2 题目描述 给定两个长度为n的整数列A和B,每次你可以从A数列的左端或右端取走一个数。假设第i次取走的数为ax,则第i次取走的数的价值vibi⋅ax,现在希望你求出∑vi的最大值。 输入格式 第一行一个数T ,表示有T 组数据。…

【算法挨揍日记】day27——152. 乘积最大子数组、1567. 乘积为正数的最长子数组长度

152. 乘积最大子数组 152. 乘积最大子数组 题目描述: 给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 测试用例的答案是一个 32-位 整…
最新文章