当前位置:首页>python>18.Python实战__阶乘计算器

18.Python实战__阶乘计算器

  • 2026-09-02 18:51:35
18.Python实战__阶乘计算器
    今天咱们来实现一个小功能,做一个阶乘计算器,来计算n的阶乘,当输入一个数时,计算这个数的阶乘,先看运行效果;
    今天用到的基本知识还是前几节讲的 for循环结合 range()函数,很简单,算是回顾吧。
GUI模块还是几个常用的控制:
1) 标签 QLabel
2) 单行文本框 QLineEdit
3) 按钮 QPushButton
4) 布局 还是网格布局 QGridLayout
附代码和代码注释
(为方便大家理解,大部分代码都添加了注释)
一、还是先导入用到的模块
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()
三、创建实例方法setup_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!
可以试试在上面基础上再稍微处理下就可以计算上面的和!
    每天少来点,贵在坚持,多了也烦,如果还感觉有点用,欢迎关注、留言,互相交流。

最新文章

随机文章