今天咱们来实现一个小功能,做一个阶乘计算器,来计算n的阶乘,当输入一个数时,计算这个数的阶乘,先看运行效果; 今天用到的基本知识还是前几节讲的 for循环结合 range()函数,很简单,算是回顾吧。from PySide6.QtCore import Qtfrom PySide6.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QGridLayout, QLineEdit
# 创建类Win并继承自 QWidgetclass Win(QWidget): def __init__(self): # 初始化 super().__init__() # 父类初始化 # 设置窗口名称 self.setWindowTitle("阶乘计算") # 设置窗口尺寸 self.resize(300, 200) # 创建主布局 self.main_layout = QGridLayout() # 设置主布局 self.setLayout(self.main_layout) # 设置主布局控件顶对齐 self.main_layout.setAlignment(Qt.AlignTop) # 设置主布局内容边距(左,上,右,下) self.main_layout.setContentsMargins(20, 30, 20, 0) # 设置主布局上下、左右的间距为30 self.main_layout.setSpacing(30) # 创建一个实例方法,在里面创建控件 self.setupui_01()
def setupui_01(self): # 创建一个提示标签 self.label = QLabel("请输入一个整数", self) # 创建一个文本输入框 self.line = QLineEdit() # 设置输入框文字对齐方式为居中对齐 self.line.setAlignment(Qt.AlignmentFlag.AlignCenter) # 创建计算按钮 self.btn = QPushButton("计算阶乘", self) # 为点击按钮后连接槽函数 calculate self.btn.clicked.connect(self.calculate) # 创建一个标签来展示计算结果 self.label_2 = QLabel() # 标签文字设置对齐方式为居中对齐 self.label_2.setAlignment(Qt.AlignCenter) # 设置标签文字样式,字体尺寸:20px;颜色:红色; self.label_2.setStyleSheet("font-size: 20px;" "color: red;") # 把上面控件添加到布局中 self.main_layout.addWidget(self.label, 0, 0) self.main_layout.addWidget(self.line, 0, 1) self.main_layout.addWidget(self.btn, 1, 0, 1, -1) self.main_layout.addWidget(self.label_2, 2, 0, 1, -1)
def calculate(self): # 先拿到用户输入的数值,并强制转换为整形数据 n = int(self.line.text()) # 创建一个阶乘计算结果变量,并赋初值为 1 result = 1 # 用for来重复计算乘法 for i in range(1, n+1): result *= i # 计算结束,把结果设置给 展示标签 self.label_2.setText(f"{n}! = {result}")
if __name__ == "__main__": import sys app = QApplication(sys.argv) win = Win() win.show() sys.exit(app.exec())
由上面代码可以看出,计算逻辑很简单,咱们可以自己试试,计算阶乘的和,就是输入一个数n,计算阶乘和:阶乘和 = 1!+2!+3!+........+n!可以试试在上面基础上再稍微处理下就可以计算上面的和! 每天少来点,贵在坚持,多了也烦,如果还感觉有点用,欢迎关注、留言,互相交流。