20202411 2020-2021-2 《Python程序设计》实验二报告
20202411 2020-2021-2 《Python程序设计》实验二报告
课程:《Python程序设计》
班级: 2024
姓名: 陈书桓
学号:20202411
实验教师:王志强
实验日期:2021年4月26日
必修/选修: 公选课
1.实验内容
1.设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善;
2.考核基本语法、判定语句、循环语句、逻辑运算等知识点;
2.实验过程及结果
1.在上个学期的网络空间安全导论课程中,已经完成过用python编写一个简单的计算器的任务,但是这次实验,还是试试新写一个更符合要求的好了。
2.回想当初编写这个程序时,首先便是不知道如何创建界面和按钮以及显示文本,所以也还是去csdn上寻找答案,后来发现了tkinter库,所以现在在编写含有UI界面的程序时,也都还是会使用tkinter库。(后来经刘子谦大佬指点,发现了QtDesigner这个软件,可以更加直观方便地创建界面)
3.在完成这些UI界面的设计后,就是要对按键进行添加函数来进行运算。这一点还是比较好实现的。但是考虑到我平时在使用计算器时并不是使用鼠标点击屏幕上的按钮来运算,而是直接从键盘上键入来添加数字和运算符,但是这还是有点不太好操作,所以先放着先,等什么时间有空了再做calculator2.0。
4.如何将输入的数字和运算符显示在界面上,而且还要实时变化,并且是在输入了’=‘后再计算结果,的确是十分讨厌的,没办法,虽然我不是大智,但是可以做到若愚。还是先从看看别人的代码模仿开始。
5.最后就是整个程序的调试和运行了。对于我来说,界面设计并不是头痛的事,烦人的是运算符号,而且就算使用函数,还是会很麻烦。所以在查找资料的时候,发现了很多代码都极其简单,甚至没有出现运算的函数,细细看看,自习查查,我发现了’command=lambda‘这个至关重要的匿名函数,匿名函数不需要通过return来返回值,表达式本身就是返回值。所以这样一来,整个代码就变得很简单。虽然这个匿名函数看着对初学者不太友好,但是不得不说一句:
匿名函数tql~
3.实验中遇到的问题和解决过程
Q1:对于UI界面设计不熟悉PyQt5,导致一些Qt的函数用不惯。
A1:想起前段时间写的FASS程序,我是用tkinter和tkinter.message进行界面设计的,所以还是选择了自己较熟悉的tkinter来进行编程,其实效果还是差不多的。同时在csdn和博客园等网站上搜索了大量的信息,基本熟悉了tkinter下的label、button、title等的运用。
Q2:没有在非pygame下运用过sys库
A2:构建想法时想到当初改写Alien-Invasion时时调用了sys库,好像还是挺简单的,回去看了看,突然发现当时完全是在pygame.event下获取键入信息。所以还是一样,开始到搜索引擎上去寻找各种信息。
Q3:使用window.mainloop时并不能把全部窗口都关闭,导致有些时候需要关好几次才行,简直无法用语言形容测试时的烦躁。
A4:csdn还是好东西,经过大佬的指导,原来是需要root.mainloop()才可以。学到了学到了。
4.其他
python之所以受到广泛的欢迎,一个十分重要的原因就是python的第三方库太多太强大了,所以在搜索资料的时候发现其实通过tkinter内置的函数就已经可以完成基本的计算器任务。以后还是要站在巨人的肩膀上看看。
5.参考资料
sys
tkinter
calculator
command=lambda
20202411 2020-2021-2 《Python程序设计》实验二报告的更多相关文章
- Python程序设计实验报告二:顺序结构程序设计(验证性实验)
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 崔攀 学号3190505136 成绩 日期 2020.3.22 指导老师 修宇 [实验 ...
- 201843 2019-2020-2 《Python程序设计》实验二报告
201843 2019-2020-2 <Python程序设计>实验二报告 课程:<Python程序设计> 班级: 1843 姓名: 李新锐 学号:20184302 实验教师:王 ...
- 20192113 2020-2021-2 《Python程序设计》实验二报告
20192113 2020-2021-2 <Python程序设计>实验二报告 课程:<Python程序设计> 班级: 1921 姓名: 衣丽莎 学号:20192113 实验教师 ...
- 201922904李龙威 2019-2020-2 《Python程序设计》实验二报告
20192204 2019-2020-2 <Python程序设计>实验二报告 课程:<Python程序设计> 班级: 1922 姓名: 李龙威 学号:20192204 实验教师 ...
- PYTHON程序设计实验
Python程序设计实验报告一: 熟悉IDLE和在线编程平台 安徽工程大学 Python程序设计实验报告 班级 物流191 姓名 邹缕学号 3190505117成绩 ▁▁▁ 日期 2020.3.5 指 ...
- Python程序设计实验报告一:熟悉IDLE和在线编程平台
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 崔攀 学号3190505136 成绩_____ 日期 2020.3.8 指导老师 ...
- Python程序设计 实验 1 熟悉 IDLE 和在线编程平台
------------恢复内容开始------------ 安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 姚彩琴 学号3190505129 成绩 日期 2 ...
- Python程序设计实验报告四:循环结构程序设计(设计型实验)
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 姚彩琴 学号3190505129 成绩 日期 2020.4.8 指导老师 修宇 [实验名称 ...
- Python程序设计实验报告三:分支结构程序设计
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 姚彩琴 学号3190505129 成绩 日期 2020.4.5 指导老师 修宇 [实验目的 ...
- 20145316《Java程序设计》实验二报告
20145316<Java程序设计>实验二报告 一.实验目的与要求 1.初步掌握单元测试和TDD. 2.理解并掌握面向对象三要素:封装.继承.多态. 3.初步掌握UML建模. 4.熟悉S. ...
随机推荐
- Java把List转成以逗号分隔的字符串
private static <T> String parseListToStr(List<T> list){ String result = list.stream().ma ...
- const char* str和const char str[]的区别
首先,字符串常量是存储在flash中的.假设字符串常量在flash中的地址是0x8003fb8. 第一种方式,str等价于str的内存单元的地址,str的内存单元存储着字符串常量的地址 第二种方式,s ...
- django项目初创建报错TypeError: unsupported operand type(s) for /: 'str' and 'str'
解决办法: 'DIRS': [os.path.join(BASE_DIR, 'templates')],
- mysql开启root用户远程管理权限
来源:https://blog.csdn.net/qq_29670375/article/details/120590041 1.使用"mysql -uroot -proot"命令 ...
- pip修改镜像源
# 单独一次下载软件 pip install markdown -i https://pypi.tuna.tsinghua.edu.cn/simple # 全局修改 pip config set gl ...
- 图片上传造成VS关闭
原来的地方:https://q.cnblogs.com/q/129719/ VS2019开启调试,测试图片上传的时候,一点到图片上传,直接导致VS调试崩掉,返回 程序"[14764] iis ...
- Open review Mitigating Propagation Failures in PINNs using Evolutionary Sampling
与Mitigating Propagation failures in PINNs using Evolutionary Sampling - Orange0005 - 博客园 (cnblogs.co ...
- Vulnhub 靶场 HACK ME PLEASE: 1
Vulnhub 靶场 HACK ME PLEASE: 1 一.前期准备 靶机下载地址:https://www.vulnhub.com/entry/hack-me-please-1,731/ 攻击机ka ...
- Oracle 存储过程4:PL/SQL动态执行DDL语句
- Java基于ssm师生实验课-实验室-实验设备预约系统源码
简介 java+ssm开发的实验课实验设备实验室预约系统,老师可预约实验设备和实验室,然后发布实验课和上传实验附件.学生可以报名实验课,也可以自己预约实验室(部分实验室对学生开放)做实验.学生做完实验 ...