[QT编程系列-34]:科学计算 - QT对python语言和python库的支持, C++与python混合编程

目录

第1章 QT对python语言和python库的支持

1.1 概述

1.2 C++与Python的混合编程

第2章  PyQt (在python语言环境下,提供QT的编程环境)

2.1 概述

2.2 pyQT python代码示例

2.3 PyQt的一般使用方法 (在python环境下使用QT)

2.4 Qt环境中使用Python代码

第3章 PySide


第1章 QT对python语言和python库的支持

1.1 概述

Qt对Python的支持主要通过两个库来实现:PyQt和PySide。

  1. PyQt:PyQt是由Riverbank Computing开发的Qt的Python绑定库,它提供了完整的Qt框架的Python接口。PyQt有两个版本:PyQt4和PyQt5。PyQt5是基于Qt5的最新版本,而PyQt4则与旧版本的Qt兼容。PyQt提供了对Qt的核心模块、GUI组件、数据库访问、网络通信等功能的全面访问。

  2. PySide:PySide是Qt公司官方支持的Qt的Python绑定库,也提供了完整的Qt框架的Python接口。PySide最新版本是PySide2,它与Qt5兼容。PySide与PyQt非常相似,提供了对Qt的各个模块和功能的访问。

使用PyQt或PySide可以在Python中利用Qt框架创建GUI应用程序、处理事件、进行界面设计和布局、操作数据库、进行网络通信等。

Qt对Python的支持使得使用Python语言开发跨平台的GUI应用程序变得更加方便和简单

Python的简洁性和易学性与Qt强大的功能和性能相结合,为开发者提供了一个强大且灵活的开发平台。

无论你选择使用PyQt还是PySide,Qt的Python绑定库都为Python开发者提供了丰富的GUI编程功能和工具,可以从更高的层次上利用Qt框架的优势进行应用程序开发。

1.2 C++与Python的混合编程

QT支持C++和Python的混合编程,这使得开发者可以结合两种语言的优势来开发高性能的跨平台应用程序

下面是一些关于QT的C++和Python混合编程的常见用法和技巧:

  1. 使用C++编写核心功能:使用C++编写需要高性能和底层控制的部分,例如计算密集型算法、底层库调用等。C++具有出色的性能和直接访问硬件的能力,适用于需要高效处理的任务。

  2. 使用Python编写GUI和应用逻辑:使用Python编写用户界面、应用逻辑和高级功能。Python具有简洁的语法和高级特性,适用于快速开发、原型设计以及与第三方库的集成。

  3. 使用Qt的C++ API和信号槽机制:在C++的部分中使用Qt的C++ API和信号槽机制来处理Qt的功能、GUI组件间的通信和事件处理。通过信号槽机制,C++部分可以与Python部分进行无缝的通信和交互。

  4. 使用Qt的Python绑定库:使用PyQt或PySide库,通过Python调用Qt的功能和类。这些库提供了对Qt的完整访问,包括Qt的核心模块、GUI组件、网络通信、数据库访问等。

  5. 使用跨语言通信机制:使用Qt提供的跨语言通信机制,例如使用Qt的C++ API在C++代码中调用Python函数,或者使用Qt的Python绑定库在Python代码中调用C++函数。这样可以在不同语言之间进行数据交换和函数调用,实现两种语言的无缝集成。

  6. 利用扩展模块:Qt提供了丰富的扩展模块,可以通过C++编写并在Python中使用。这些扩展模块提供了额外的功能,如图像处理、多媒体、数据库访问等,可以在Python中方便地调用和使用。

混合编程可以充分发挥C++和Python各自的优势,提高开发效率和应用程序的性能。

但需要注意的是,混合编程可能会增加复杂性,需要特别注意模块间的交互和数据传输,以确保正确性和可靠性。

下面是C++与Python混合编程示例:

下面是一个QT C++与Python混合编程的代码示例。

本示例展示了如何在C++代码中调用Python脚本代码,并在QT界面中显示结果。

  1. C++代码(main.cpp):
#include <QApplication>
#include <QLabel>
#include <Python.h>int main(int argc, char *argv[])
{QApplication app(argc, argv);//在C++环境中创建python环境Py_Initialize();// 调用Python脚本// 导入python脚本代码PyObject* pModule = PyImport_ImportModule("myscript");//获取python函数或代码入口PyObject* pFunc = PyObject_GetAttrString(pModule, "get_result");//在C++环境中执行python代码PyObject* pResult = PyObject_CallObject(pFunc, NULL);// 将Python结果转换为QStringQString result = QString(PyUnicode_AsUTF8(pResult));//在C++环境中释放python环境Py_Finalize();// 在QT界面中显示结果QLabel label(result);label.show();return app.exec();
}

  1. Python脚本(myscript.py):
def get_result():return "Hello from Python!"if __name__ == "__main__":pass

在这个示例中,C++代码使用了Qt的QApplicationQLabel类,创建了一个简单的QT应用程序,该应用程序调用了Python脚本并将结果显示在QT界面中。

在C++代码中,我们首先使用Py_Initialize()初始化Python解释器。然后,我们使用PyImport_ImportModule函数导入Python脚本(myscript.py)。接下来,我们使用PyObject_GetAttrString函数获取Python脚本中的get_result函数,并使用PyObject_CallObject函数调用它,获取结果。最后,在QT界面中创建一个QLabel并显示Python返回的结果。

Python脚本中的get_result函数返回一个简单的字符串。当这个脚本作为主程序运行时,没有任何操作。

编译和运行C++代码时,请确保已正确链接PyQt和Python库,并将myscript.py与C++可执行文件放在同一个目录下。

通过这个示例,你可以看到如何在QT C++代码中使用Python脚本,并将结果与QT界面进行集成显示。你可以根据自己的需要和具体情况进行进一步的开发和扩展。

第2章  PyQt (在python语言环境下,提供QT的编程环境)

2.1 概述

PyQt是一个基于Qt框架的Python绑定库,可以用于开发GUI应用程序。它提供了对Qt核心模块、GUI组件、多媒体、网络通信、数据库等功能的完整访问。

PyQt有两个版本:PyQt4和PyQt5。PyQt4与旧版本的Qt兼容,而PyQt5与Qt5兼容。

以下是PyQt的一些主要特点:

  1. 完整性:PyQt提供了对Qt框架的完整访问,并支持大多数Qt的类和功能。你可以使用PyQt创建窗口、对话框、菜单、工具栏等GUI组件,并进行事件处理和界面设计。

  2. 面向对象设计:PyQt使用面向对象的设计,并遵循Qt的类层次结构。它利用Python的特性,如继承、多态和信号槽机制,使得开发者可以轻松地编写清晰、可维护的代码。

  3. 跨平台支持:PyQt是跨平台的,并且可在Windows、macOS、Linux等操作系统上运行。这使得开发者可以使用相同的PyQt代码在不同平台上创建一致性的应用程序。

  4. 丰富的文档和示例:PyQt提供了详细的文档和示例,帮助开发者快速入门和深入了解PyQt的各种功能。官方文档中包含了API参考、教程、示例代码等资源。

  5. 强大的性能和扩展性:由于PyQt是基于Qt框架的,它继承了Qt优秀的性能和扩展性。你可以使用PyQt构建高性能的应用程序,并利用Qt的多种扩展模块来添加更多功能。

总之,PyQt是一个强大且广泛使用的库,可用于创建功能丰富、跨平台的GUI应用程序。

它结合了Python语言的简洁性和Qt框架的功能强大,为开发者提供了灵活且强大的工具来实现各种应用程序需求。

2.2 pyQT python代码示例

下面是一个简单的PyQt代码示例,用于创建一个窗口,包含一个标签和一个按钮,并实现按钮点击事件的处理函数。

说明:如下是python语言编程,在python语法下,使用QT的功能。

from PyQt5 import QtWidgets# 创建应用程序对象
app = QtWidgets.QApplication([])# 创建窗口对象
window = QtWidgets.QWidget()
window.setWindowTitle('PyQt Example')
window.resize(300, 200)# 创建标签对象
label = QtWidgets.QLabel('Hello, PyQt!', window)# 创建按钮对象
button = QtWidgets.QPushButton('Click Me', window)# 创建垂直布局管理器
layout = QtWidgets.QVBoxLayout()
layout.addWidget(label)
layout.addWidget(button)# 设置窗口布局
window.setLayout(layout)# 定义按钮点击事件处理函数
def button_clicked():label.setText('Button Clicked!')# 将按钮的点击事件连接到处理函数
button.clicked.connect(button_clicked)# 显示窗口
window.show()# 运行应用程序
app.exec()

在这个示例中,我们首先导入了QtWidgets模块来引入所需的Qt GUI组件。然后,我们创建了应用程序对象app和窗口对象window,并设置了窗口的标题和大小。

接下来,我们创建了一个标签对象label和一个按钮对象button,并将它们添加到窗口内。我们使用了一个垂直布局管理器layout来安排这两个组件的位置。

然后,我们定义了一个按钮点击事件的处理函数button_clicked,当按钮被点击时,标签的文本将被更新。最后,我们将按钮的点击事件与处理函数进行连接。

最后,我们通过调用show()方法显示窗口,并通过调用exec()方法启动应用程序的事件循环,使应用程序保持运行。

这只是一个简单的示例,帮助你入门PyQt的GUI编程。你可以根据需求和Qt文档,进一步学习和探索PyQt的丰富功能和API。

2.3 PyQt的一般使用方法 (在python环境下使用QT)

PyQt是一个功能强大的GUI编程框架,用于创建跨平台的图形用户界面应用程序。下面是PyQt的一般使用方法:

  1. 安装PyQt库:首先,确保你已经安装了PythonPyQt库。你可以使用pip命令来安装PyQt库:

    pip install pyqt5
    
  2. 导入PyQt模块:在你的Python代码中,使用import语句导入所需的PyQt模块。一般情况下,你需要导入QtWidgets模块:

    from PyQt5 import QtWidgets
    
  3. 创建应用程序对象:使用QApplication类创建一个应用程序对象。这个对象是整个应用的核心,负责处理事件和管理应用的生命周期。

    app = QtWidgets.QApplication([])
    
  4. 创建窗口对象:使用QWidget类或其子类创建一个窗口对象,作为应用程序的主窗口。你可以设置窗口的标题、大小和其他属性。

    window = QtWidgets.QWidget()
    window.setWindowTitle('My Application')
    window.resize(500, 300)
    
  5. 创建和布局GUI组件:在窗口对象中,创建各种GUI组件如标签、按钮、文本框等,并使用布局管理器来安排它们的位置和大小。

    layout = QtWidgets.QVBoxLayout()  # 创建布局管理器label = QtWidgets.QLabel('Hello, PyQt!', window)
    layout.addWidget(label)  # 将标签添加到布局上button = QtWidgets.QPushButton('Click Me', window)
    layout.addWidget(button)  # 将按钮添加到布局上window.setLayout(layout)  # 设置窗口的布局
    
  6. 连接信号和槽:使用connect()方法将组件的信号(例如按钮的点击事件)连接到对应的槽(事件处理函数)。这样,当信号触发时,槽函数将被调用。

    def button_clicked():label.setText('Button Clicked!')button.clicked.connect(button_clicked)
    
  7. 显示窗口:使用show()方法显示创建的窗口对象。

    window.show()
    
  8. 运行应用程序:通过调用exec()方法启动应用程序的事件循环,使应用程序保持运行状态。

    app.exec()
    

这只是PyQt的基本使用方法。你还可以进一步学习和使用PyQt的丰富功能、使用其他模块(如QtGuiQtCore)和自定义子类来创建更复杂和强大的应用程序。在开发过程中,可以参考PyQt官方文档和示例代码,来获得更详细的指导和了解。

2.4 Qt环境中使用Python代码

要在Qt环境中使用Python代码,你可以使用PyQt或PySide这两个库,它们提供了Python语言对Qt框架的绑定。

下面是在Qt环境中使用Python代码的步骤:

  1. 安装PyQt或PySide库:首先,确保你已经安装了Python和其中一个库(PyQt或PySide)。你可以使用pip命令来安装这些库:

    pip install pyqt5      # 安装PyQt
    # 或
    pip install pyside2    # 安装PySide
    
  2. 创建一个Qt应用程序:在C++环境中,通常使用Qt Creator等工具来创建Qt应用程序。但在Python中,你可以在Python脚本中创建Qt应用程序。以下是一个简单的示例:

    from PyQt5.QtWidgets import QApplication, QLabelapp = QApplication([])label = QLabel("Hello, Qt with Python!")
    label.show()app.exec()
    

    在这个示例中,我们导入了QApplicationQLabel类,并创建了一个应用程序对象app。然后,我们创建了一个标签对象label,并将其设置为窗口的主要内容。最后,我们通过调用show()方法显示标签,并通过app.exec()启动应用程序的事件循环。

  3. 运行Python脚本:将Python脚本保存为.py文件,并通过命令行运行它:

    python my_script.py
    

    这将在Qt环境中执行你的Python代码,并显示Qt应用程序的窗口和组件。

这样,你就可以在Qt环境中使用Python代码。你可以编写Python脚本来创建和配置Qt组件、处理事件和信号等。PyQt和PySide提供了对Qt的完整访问,你可以参考官方文档和示例代码,深入学习和了解它们的用法和功能。

第3章 PySide

3.1 PySide概述

PySide是一个用于创建跨平台图形用户界面(GUI)的Python绑定库。

它提供了对Qt框架的访问,使你能够使用Python语言构建功能丰富的GUI应用程序。

以下是一些关于PySide的重要信息:

  1. 历史和版本:PySide最初由诺基亚公司开发,但它目前由Qt公司和社区维护。目前,最新版本是PySide2,它是基于最新的Qt 5框架。与早期版本(PySide)相比,PySide2提供了更好的兼容性和功能支持。

  2. 特性和功能:PySide提供了全面的Qt库访问,包括Qt的核心模块(QtCore)、GUI组件模块(QtWidgets)、绘图模块(QtGui)等。你可以使用这些模块来创建窗口、按钮、标签、文本框、绘图等各种GUI组件,以及处理用户交互、信号和槽等。

  3. 跨平台支持:PySide是一个跨平台的库,可以在多个操作系统上运行,包括Windows、MacOS和Linux。这意味着你可以在不同的操作系统上使用相同的PySide代码来构建应用程序,并获得相似的用户体验。

  4. 与Qt Designer集成:PySide可以与Qt Designer集成,这是一个可视化的图形界面设计器。你可以使用Qt Designer创建GUI界面,然后通过PySide将其加载到Python代码中。这种分离设计和逻辑的方法使得用户界面的设计和开发更加灵活和高效。

  5. 学习资源和社区支持:PySide有一些很好的学习资源可供参考,包括官方文档、示例代码和教程。此外,还有一个活跃的社区,可以通过论坛、邮件列表等方式获取支持和交流。

PySide是一个强大而灵活的库,适用于从小型工具到复杂的桌面应用程序的开发。无论是新手还是有经验的开发者,使用PySide都可以方便地利用Python的简洁性和Qt的强大功能来构建交互式应用程序。

3.2 PySide进行GUI编程的一般步骤 -- 在python环境中

下面是使用PySide进行GUI编程的一般步骤:

  1. 导入所需的PySide模块:
from PySide2.QtWidgets import QApplication, QMainWindow, QWidget, QPushButton

  1. 创建一个应用程序对象:
app = QApplication()

  1. 创建一个主窗口对象(继承自QMainWindow),或者创建一个QWidget对象作为主窗口容器:
window = QMainWindow()  # 或者
window = QWidget()

  1. 在主窗口中设置界面元素/部件(widgets),如按钮、标签、文本框等。可以使用PySide提供的各种GUI组件。

  2. 设置界面元素的位置和布局。可以使用布局管理器(如QVBoxLayout、QHBoxLayout、QGridLayout等)来自动排列和组织界面元素。

  3. 连接信号和槽(信号和槽机制用于处理用户交互事件)。使用QPushButton的clicked信号作为例子:

button.clicked.connect(handler_function)

  1. 实现信号的槽函数(处理特定事件的函数)。

  2. 将界面元素添加到主窗口或其他容器中:

window.setCentralWidget(widget)  # QMainWindow中使用

  1. 显示主窗口:
window.show()

  1. 启动应用程序的事件循环:
app.exec_()

这是一个简化的步骤示例,你可以根据具体需求进行扩展和定制。PySide提供了丰富的GUI组件、布局管理器、样式和主题支持等,以满足各种GUI应用程序的需求。你还可以使用Qt Designer进行界面设计,并将设计好的界面加载到PySide代码中,加快开发效率。

在进行PySide编程时,建议查阅官方文档、示例代码和教程,以了解更多关于PySide的详细使用方法和特性。

3.3 pySide代码示例

以下是一个简单的PySide代码示例,演示了如何创建一个基本的窗口并显示一个按钮。

import sys
from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton# 继承自QMainWindow创建主窗口
class MainWindow(QMainWindow):def __init__(self):super().__init__()# 设置窗口标题self.setWindowTitle("PySide Example")# 创建一个按钮button = QPushButton("Click me!", self)button.clicked.connect(self.buttonClicked)def buttonClicked(self):print("Button clicked!")if __name__ == "__main__":# 创建应用程序对象app = QApplication(sys.argv)# 创建窗口对象window = MainWindow()window.show()# 运行应用程序的事件循环sys.exit(app.exec_())

这个示例创建了一个MainWindow类,它继承自QMainWindow,并重写了它的构造函数。在构造函数中,我们设置了窗口的标题,并创建了一个按钮。buttonClicked函数是一个槽(slot),当按钮被点击时,会触发这个函数,并打印一条消息。

在主程序中,我们创建了一个QApplication对象作为应用程序的实例,并创建了MainWindow对象。最后,通过调用app.exec_()启动应用程序的事件循环。

通过运行这个示例,你将看到一个简单的窗口和一个按钮。当你点击按钮时,会在控制台打印"Button clicked!"的消息。

这个示例只是PySide的入门示例,你可以根据需要和具体情况来扩展和定制应用程序。PySide提供了更多的GUI组件、布局管理器、信号和槽机制等,你可以根据你的需求来构建更复杂和功能强大的GUI应用程序。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。npm.ps1 cannot be loaded

目录 原因 解决方法 提示 查看当前的执行策略命令 改回默认值 "Restricted"命令 这个错误提示是因为您的系统禁止执行 PowerShell 脚本。 原因 现用执行策略是 Restricted&#xff08;默认设置&#xff09; 解决方法 以管理员身份运行 PowerShell&#xff1a;右键…

CollectionUtils工具类的使用

来自&#xff1a;小小程序员。 本文仅作记录 org.apache.commons.collections包下的CollectionUtils工具类&#xff0c;下面说说它的用法&#xff1a; 一、集合判空 通过CollectionUtils工具类的isEmpty方法可以轻松判断集合是否为空&#xff0c;isNotEmpty方法判断集合不为…

PyTorch Lightning教程二:验证、测试、checkpoint、早停策略

介绍&#xff1a;上一期介绍了如何利用PyTorch Lightning搭建并训练一个模型&#xff08;仅使用训练集&#xff09;&#xff0c;为了保证模型可以泛化到未见过的数据上&#xff0c;数据集通常被分为训练和测试两个集合&#xff0c;测试集与训练集相互独立&#xff0c;用以测试模…

【Visual Studio】无法打开包括文件: “dirent.h”: No such file or directory

VS2017/2019 无法打开包括文件: “dirent.h”: No such file or directory 1 “dirent.h”: No such file or directory 在windows下的VS2017/2019编译器中&#xff0c;发现无法打开“dirent.h”&#xff0c;主要是MSVC并没有实现这个头文件&#xff0c;但是在Linux这个头文件…

如何以管理员权限安装某个msi

介绍 如何以管理员权限安装某个msi 方法 要以管理员权限在控制台中安装一个 MSI 文件&#xff0c;你可以按照以下步骤操作&#xff1a; 打开命令提示符&#xff08;或 PowerShell&#xff09;&#xff1a;按下 Win R 键&#xff0c;在运行窗口中输入 “cmd”&#xff08;或 …

Chapter 8: Files | Python for Everybody 讲义笔记_En

文章目录 Python for Everybody课程简介FilesPersistenceOpening filesText files and linesReading filesSearching through a fileLetting the user choose the file nameUsing try, except, and openWriting filesDebuggingGlossary Python for Everybody Exploring Data Us…

安全初级—正则表达式、This关键字、闭包

文章目录 正则表达式字面量字符元字符转义符特殊字符字符类预定义模式重复类量词符贪婪模式修饰符 This关键字使用场合使用注意点避免多层 this避免数组处理方法中的 this避免回调函数中的 this 绑定 this 的方法Function.prototype.call()Function.prototype.apply()Function.…

LLaMA 2: Open Foundation and Fine-Tuned Chat Models

LLaMA 2: Open Foundation and Fine-Tuned Chat Models Pre-trainingFine-tuningReward modelRLHF参考 Pre-training 数据层面&#xff1a; 预训练语料比LLaMA1多了40%&#xff0c;一共2T tokens&#xff0c;更关注了高质量数据的清洗。 其中数据不包含Meta产品与服务&#xf…

PHP8的注释-PHP8知识详解

欢迎你来到PHP服务网&#xff0c;学习《PHP8知识详解》系列教程&#xff0c;本文学习的是《PHP8的注释》。 什么是注释&#xff1f; 注释是在程序代码中添加的文本&#xff0c;用于解释和说明代码的功能、逻辑或其他相关信息。注释通常不会被编译器或解释器处理&#xff0c;而…

论文笔记:Fine-Grained Urban Flow Prediction

2021 WWW 1 intro 细粒度城市流量预测 两个挑战 细粒度数据中观察到的网格间的转移动态使得预测变得更加复杂 需要在全局范围内捕获网格单元之间的空间依赖性单独学习外部因素&#xff08;例如天气、POI、路段信息等&#xff09;对大量网格单元的影响非常具有挑战性——>论…

draw up a plan

爱情是美好的&#xff0c;却不是唯一的。爱情只是属于个人化的感情。 推荐一篇关于爱情的美文&#xff1a; 在一个小镇上&#xff0c;有一家以制作精美巧克力而闻名的手工巧克力店&#xff0c;名叫“甜蜜之爱”。这家巧克力店是由一位名叫艾玛的年轻女性经营的&#xff0c;她对…

iOS - Apple开发者账户添加新测试设备

获取UUID 首先将设备连接XCode&#xff0c;打开Window -> Devices and Simulators&#xff0c;通过下方位置查看 之后登录(苹果开发者网站)[https://developer.apple.com/account/] &#xff0c;点击设备 点击加号添加新设备 填写信息之后点击Continue&#xff0c;并一路继续…

靶机精讲之Brainpan1

nmap扫描 主机发现 端口扫描 服务扫描 -sT 说明用tcp协议&#xff08;三次握手&#xff09;扫描 -sV扫描版本 O扫描系统 NULL是图片 10000端口是个python服务 UDP扫描 脚本扫描 web渗透 目录爆破 显示/bin/目录有东西 gobuster dir -w /usr/share/dirbuster/wordlists/di…

蓝桥杯单片机第十届国赛 真题+代码

iic.c /* # I2C代码片段说明1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。2. 参赛选手可以自行编写相关代码或以该代码为基础&#xff0c;根据所选单片机类型、运行速度和试题中对单片机时钟频率的要求&#xff0c;进行代码调试和修改。 */ #include <STC1…

【【51单片机DA转换模块】】

爆改直流电机&#xff0c;DA转换器 main.c #include <REGX52.H> #include "Delay.h" #include "Timer0.h"sbit DAP2^1;unsigned char Counter,Compare; //计数值和比较值&#xff0c;用于输出PWM unsigned char i;void main() {Timer0_Init();whil…

后台管理系统中刷新业务功能的实现

实现 下载vueuse npm i vueuse/core在header组件中引入并给全屏按钮绑定点击事件 <el-button type"default" click"toggle" icon"FullScreen" circle></el-button>import { useFullscreen } from vueuse/coreconst { toggle } u…

【Java】分支结构习题

【Java】分支结构 文章目录 【Java】分支结构题1 &#xff1a;数字9 出现的次数题2 &#xff1a;计算1/1-1/21/3-1/41/5 …… 1/99 - 1/100 的值。题3 &#xff1a;猜数字题4 &#xff1a;牛客BC110 X图案题5 &#xff1a;输出一个整数的每一位题6 &#xff1a; 模拟三次密码输…

[SQL挖掘机] - 内连接: inner join

介绍: 内连接是一种多表连接方式&#xff0c;用于将两个或多个表中的数据通过共同的列值进行匹配&#xff0c;并返回满足连接条件的匹配行。简单来说&#xff0c;内连接能够将相关联的数据组合在一起&#xff0c;以便进行更复杂和全面的数据分析。 内连接的工作原理如下&…

bash: 睡觉的冒号;是不是两个点?

文章目录 简介躺着的冒号是两个点正常冒号总结简介 在bash里冒号和躺着的冒号的用法不一样一定要注意别用错。 躺着的冒号是两个点 难道正常的不是两个点)的作用: A sequence expression takes the form {x…y[…incr]}, where x and y are either integers or single cha…

排序算法、

描述 由小到大输出成一行&#xff0c;每个数字后面跟一个空格。 输入 三个整数 输出 输入三个整数&#xff0c;按由小到大的顺序输出。 输入样例 1 2 3 1 输出样例 1 1 2 3 输入样例 2 4 5 2 输出样例 2 2 4 5 代码一&#xff08;如下&#xff09;&#xff1…