python做出来的作品,python作品创意简单

大家好,小编来为大家解答以下问题,python做出来的作品,python作品创意简单,今天让我们一起来看看吧!

Python语言学习-----简易计算器的制作

我是一名普通的大二在校学生,在大二第一学期开设的课程里接触到Python语言与PyQt。下面向大家展示的是我的python作品–简易计算机火车头采集器伪原创插件。
作品可能有不完善的地方和问题,希望大家能多多给我建议。
应用程序:Python,PyQt,VScode
一·作品展示
在这里插入图片描述
本项目所设计的计算器的Qt界面大体如下图
在这里插入图片描述
在此计算器的显示部分,为了美观我使用了一个多行文本框(Text Edit),并将两个标签(Label)覆盖其上,用两行标签来显示计算器计算内容。
二.代码部分
(1)模块,在代码部分我加入了math模块
在这里插入图片描述
(2)数字输入
以数字1为例,代码如下

#如果当前a的值为0,则将0换为1
#如果a为空,则退出函数
(3)基本运算
思路:上一级运算交由下一级运算符计算,下一级运算由更下一级运算
例如:1+2-3=0。按照正常的思维逻辑,我们应先计算1+2,得到结果3,再用所得结果减掉最后的3,最后结果为0。而此次项目的运算思维略有不同,当+号触发时,计算器并不会进行计算,只是将加数1保存下来,等到-号触发时,计算器才会计算出1+2=3,以此类推。
具体程序(以加法为例)如下:
在这里插入图片描述
函数中定义全局变量A,使用A获取计算每一步的出的结果。然后后一位的运算符激活时,获取A的值,进行下一步计算
#[-1]字符串取到倒数第一个元素
#“-1”倒数第一个元素
#float()将整数和字符串换成浮点数(双精度,64位)
在这里插入图片描述
在这里插入图片描述
以上是进行最终结果的计算
(4)扩展运算
此计算器除了加减乘除基础运算以外,还能够进行扩展运算比如:三角函数、反三角函数、反比例函数、对数函数。
而这一部分的我们可以调用math库中的函数进行计算。
在这里插入图片描述
因为不明确知道根号符号后面有多少字符串,所以以“b=a+√”的形式表示;
在这里插入图片描述
#log(d,b)为以b为底d的对数
不足:在计算关于根号(root)的代码时,labnumber1必须是要有字符的,如果没有字符则报错。
(5)清空与退格
在此计算器中共有两种删除模式:退格(backspace)和清空(clear)。退格的删除方式可以将labNumber1框里的内容从右往左依次删除,清空的方式可以将labNumber1与labNumber2中所有的内容删除。
两种删除模式代码分别如下:
在这里插入图片描述
三.代码展示

def One(self):a=self.labNumber1.text()if a=='0':b='1'else:    b = self.labNumber1.text() + '1'self.labNumber1.setText(str(b))def Two(self):a=self.labNumber1.text()if a=='0':b='2'else:    b = self.labNumber1.text() + '2'self.labNumber1.setText(str(b))def Three(self):a=self.labNumber1.text()if a=='0':b='3'else:    b = self.labNumber1.text() + '3'self.labNumber1.setText(str(b))def Four(self):a=self.labNumber1.text()if a=='0':b='4'else:    b = self.labNumber1.text() + '4'self.labNumber1.setText(str(b))def Five(self):a=self.labNumber1.text()if a=='0':b='5'else:    b = self.labNumber1.text() + '5'self.labNumber1.setText(str(b))def Six(self):a=self.labNumber1.text()if a=='0':b='6'else:    b = self.labNumber1.text() + '6'self.labNumber1.setText(str(b))def Seven(self):a=self.labNumber1.text()if a=='0':b='7'else:    b = self.labNumber1.text() + '7'self.labNumber1.setText(str(b))def Eight(self):a=self.labNumber1.text()if a=='0':b='8'else:    b = self.labNumber1.text() + '8'self.labNumber1.setText(str(b))def Nine(self):a=self.labNumber1.text()if a=='0':b='9'else:    b = self.labNumber1.text() + '9'self.labNumber1.setText(str(b))def Zero(self):a=self.labNumber1.text()if a=='0':b='9'else:    b = self.labNumber1.text() + '0'self.labNumber1.setText(str(b))def Point(self):a=self.labNumber1.text()if a=='':returna = self.labNumber1.text() + '.'self.labNumber1.setText(str(a))def Add(self):a =self.labNumber1.text()b =self.labNumber2.text()if a=='':returnd=float(a)c = b + a + '+'self.labNumber2.setText(c)self.labNumber1.setText("")global Aif b=='':A=dreturnif b[-1]=="+":A=float(A+d)def Subtract(self):a =self.labNumber1.text()b =self.labNumber2.text()if a=='':returnd=float(a)c = b + a + '-'self.labNumber2.setText(c)self.labNumber1.setText("")global Aif b=='':A=dreturnif b[-1]=="-":A=float(A-d)def Multiply(self):a =self.labNumber1.text()b =self.labNumber2.text() if a=='':returnd=float(a) c = b + a + '×'self.labNumber2.setText(c)self.labNumber1.setText("")global Aif b=='':A=dreturnif b[-1]=="×":A=float(A*d)def Divide(self):a =self.labNumber1.text()b =self.labNumber2.text()if a=='':returnd=float(a)c = b + a + '÷'self.labNumber2.setText(c)self.labNumber1.setText("")global Aif b=='':A=dreturnif b[-1]=="÷":if d==0:returnA=float(A/d)def Sin(self):self.labNumber2.setText("sin")def Cos(self):self.labNumber2.setText("cos")def Tan(self):self.labNumber2.setText("tan") def Root(self):a =self.labNumber1.text()c =self.labNumber2.text()if '+' in c or '-' in c or '×' in c or '÷' in c:returnif a=='':returnb = a + "√"self.labNumber2.setText(b)self.labNumber1.setText("")def Special(self):a=float(self.labNumber1.text())c =self.labNumber2.text()if '+' in c or '-' in c or '×' in c or '÷' in c:returnb=1/aself.labNumber1.setText(str(b))def Involution(self):a =self.labNumber1.text()c =self.labNumber2.text()if '+' in c or '-' in c or '×' in c or '÷' in c:returnif a=='':returnb = a + "^"self.labNumber2.setText(b)self.labNumber1.setText("")def Log(self):a =self.labNumber1.text()c =self.labNumber2.text()if '+' in c or '-' in c or '×' in c or '÷' in c:returnif a=='':returnb = a + "log"self.labNumber2.setText(b)self.labNumber1.setText("")def Backspace(self):a=self.labNumber1.text()if a=='':returnif a!='':u = a[0:-1]self.labNumber1.setText(str(u))def Delete(self):self.labNumber1.setText('')self.labNumber2.setText('')def Equality(self):a=self.labNumber2.text()o=self.labNumber1.text()if a=='' and o=='':returnif a=='' and o!="":c=float(o)returnb=float(self.labNumber1.text())if o=='':b=0else:b=float(self.labNumber1.text())if a[-1]=='+' or a[-1] == '-' or a[-1] == '×' or a[-1] == '÷' :c=float(A)if a[-1]=="+":c=float(A+b)if a[-1]=="-":c=float(A-b)if a[-1]=="×":c=float(A*b)if a[-1]=="÷":if b==0:returnc=float(A/b)if a[-1] == '√':c = math.sqrt(int(a[0:-1]))   if a[-1] == '^':c = float(a[0:-1]) ** b   if a[-1] == 'g':d=int(a[0:-3])c = math.log(d,b)        if a=="sin":c=math.sin(b)if a=="cos":c=math.cos(b)if a=="tan":c=math.tan(b)    if c % 1 == 0 :d=int(c)self.labNumber1.setText(str(d))else:self.labNumber1.setText(str(c))self.labNumber2.setText('')

以上就是我的结课作品,若果有需要完善和改正的地方,欢迎各位留言指正。

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

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

相关文章

selenium语法进阶+常用API

目录 浏览器操作 浏览器回退,前进 与刷新 浏览器窗口设置大小 浏览器设置宽高 浏览器窗口最大化 浏览器控制滚动条 信息打印 打印页面的标题和当前页面的URL 定位一组元素 鼠标和键盘事件 键盘 鼠标 下拉框操作 通过索引定位(se…

一.RocketMQ概念

RocketMQ概念 1.概念2.应用场景3.MQ的优点和缺点4.常见MQ对比 1.概念 MQ(Message Queue),是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生产、存储、消费全过程API的软件系统。 RocketMQ是阿里巴巴2016年MQ中间件&…

算法学习总结

算法总结 文章目录 算法总结搜索遍历dfs树的深度树的重心图的连通块划分 bfs双端队列bfsbfs图问题 迭代加深双向搜索A*IDA*Morris遍历Manacher 数论质数判断质数分解质因数埃氏筛法线性筛法 约数求N的正约数集合——试除法求1~N每个数的正约数集合——倍除法 欧拉函数快速幂快速…

C语言好题解析(一)

目录 选择题1选择题2选择题3选择题4编程题一 选择题1 执行下面程序,正确的输出是( )int x 5, y 7; void swap() {int z;z x;x y;y z; } int main() {int x 3, y 8;swap();printf("%d,%d\n",x, y);return 0; }A: 5,7 B: …

2022年工作架构分析

mpmw自动化流程工具 schema动态数据 Schema 本身是一个JSON ,Schema 通过一些特定字段描述和定义 JSON的数据结构。 最常见的表单通过类XML语法定义。一些库支持通过一些特定结构的 JSON (Schema)来生成类XML标签。 formily 是其中实现之一。 表单设计器通过可视…

TiDB数据库从入门到精通系列之六:使用 TiCDC 将 TiDB 的数据同步到 Apache Kafka

TiDB数据库从入门到精通系列之六:使用 TiCDC 将 TiDB 的数据同步到 Apache Kafka 一、技术流程二、搭建环境三、创建Kafka changefeed四、写入数据以产生变更日志五、配置 Flink 消费 Kafka 数据 一、技术流程 快速搭建 TiCDC 集群、Kafka 集群和 Flink 集群创建 c…

三种MMIC放大器偏置电压顺序

HBT自偏置放大器偏置顺序 1、有两种HBT放大器,自偏置和带电流控制的自偏置,下图是HBT自偏置放大器最简单的偏置。这些放大器只需要接通集电极电压。有一个设置电流的偏置电阻。放大器有一个电流反射镜来控制基极电压。 2、 电阻值的计算 3、打开电源并…

【BASH】回顾与知识点梳理(三十一)

【BASH】回顾与知识点梳理 三十一 三十一. 进程的管理31.1 给进程发送讯号kill -signal PIDlinux系统后台常驻进程killall -signal 指令名称 31.2 关于进程的执行顺序Priority 与 Nice 值nice :新执行的指令即给予新的 nice 值renice :已存在进程的 nice…

机器学习笔记:线性链条件随机场(CRF)

0 引入:以词性标注为例 比如我们要对如下句子进行标注: “小明一把把把把住了”那么我么可能有很多种词性标注的方法,中间四个“把”,可以是“名词名词动词名词”,可以是“名词动词动词名词”等多种形式。 那么&#…

图片转换成pdf格式?这几种转换格式方法了解一下

图片转换成pdf格式?将图片转换成PDF格式的好处有很多。首先,PDF格式具有通用性,可以在几乎任何设备上查看。其次,PDF格式可以更好地保护文件,防止被篡改或者复制。此外,PDF格式还可以更好地压缩文件大小&am…

django-基本环境配置

文章目录 django 环境安装1. 安装环境1.1 安装 Python (配置虚拟环境)1.1.1 步骤 1.2 Conda配置环境参考 django 环境安装 1. 安装环境 1.1 安装 Python (配置虚拟环境) 由于国外源速度慢,可以pip添加清华源 pip config set global.index-url https://pypi.tuna.…

汽车级36V、4A同步降压转换器MAX20404AFOD/VY、MAX20404AFOC/VY、MAX20404AFOA/VY开关稳压器

MAX20404是小型同步降压转换器,集成了高端和低端开关。这些IC均设计为可在3V到36V的宽输入电压范围内提供高达4A的电流。电压质量可以通过观察PGOOD信号来监测。该器件可以在99%的占空比下运行,非常适合汽车和工业应用。 MAX20404提供可编程输出电压或5…

使用RoBERT进行fine tune来复现GLUE的效果

文章目录 一. 参考博客or文献二. Proprocess GLUE task data2.1 下载GLUE的数据集2.2 预处理GLUE的数据集2.2.1 算法思路与整体代码以及运行结果图2.2.2 完整代码与处理结果 三. 使用预处理好的数据集进行 finetune3.1 将RoBERTa的模型下载到本地3.2 微调任务之RTE(句子二分类任…

python编程需要的电脑配置,python编程对电脑的要求

大家好,给大家分享一下python编程用什么笔记本电脑,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 不打游戏,只学编程。刚开始自学 Python小发猫伪原创,python下载需要花钱吗。 如果不搞机器学习的话,也…

TypeScript 语法

环境搭建 以javascript为基础构建的语言,一个js的超集,可以在任何支持js的平台中执行,ts扩展了js并且添加了类型,但是ts不能被js解析器直接执行,需要编译器编译为js文件,然后引入到 html 页面使用。 ts增…

Blender增强现实3D模型制作指南【AR】

推荐:用 NSDT编辑器 快速搭建可编程3D场景 将静态和动画 3D 内容集成到移动增强现实 (AR) 体验中是增强用户沉浸感和参与度的高效方法。 然而,为 AR 创建 3D 对象可能相当艰巨,尤其是对于那些缺乏 3D 建模经验的人来说。 与添加视频或照片 AR…

Mariadb高可用MHA (四十二)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、概述 1.1 概念 1.2 组成 1.3 特点 1.4 工作原理 二、构建MHA 2.1 ssh免密登录 2.2 主从复制 2.3 MHA安装 2.3.1所有节点安装perl环境 2.3..2 node 2.3.…

零售行业供应链管理核心KPI指标(三)

完美订单满足率和退货率 完美订单满足率有三个方面的因素影响:订单按时、足量、无损交货。通常情况下零售企业追求线上订单履行周期慢慢达到行业平均水平,就是交付的速度变快了,这个肯定是一件好事情,趋势越来越好。 同时&#…

Vim的插件管理器之Vundle

1、安装Vundle插件管理器 Vim可以安装插件,但是需要手动安装比较麻烦,Vim本身没有提供插件管理器,所以会有很多的第三方的插件管理器,有一个vim的插件叫做 “vim-easymotion”,在它的github的安装说明里有列出对于不同…

log4j:WARN No appenders could be found for logger问题

本文将idea场景下的使用。 IDEA中,将配置文件命名为log4j.properties(该命名才会被自动加载), 并放到某个目录下(通常放到resources目录),并在resources上右键,找到Mark Directory a…