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

最新文章

  1. download github files
  2. 网页音乐突破金币(RMB)下载限制
  3. 【BZOJ】【3261】最大异或和
  4. [原] GLES在iOS和Android上的不同
  5. 制作自己的web字体
  6. Android中的分页加载
  7. SQL Server分页查询方法整理
  8. 微信app支付android客户端以及.net服务端实现
  9. Java框架之Spring MVC(二)
  10. JS实现异步提交
  11. JSOUP如何POST只含JSON格式的数据
  12. postfix 指定用户限制指定域名收发
  13. 如何合并两个Git仓库
  14. BIND9源码分析之UDP数据处理
  15. SQL学习笔记八之ORM框架SQLAlchemy
  16. 【BZOJ4455】小星星(动态规划,容斥)
  17. leetcode 之Rotate List(18)
  18. 【计算几何】【预处理】【枚举】Urozero Autumn Training Camp 2016 Day 5: NWERC-2016 Problem K. Kiwi Trees
  19. FireFox插件SQLite Manager的使用
  20. SSM框架理解搭建(虽然是网上拼的,但是实际按照搭建是可以的)——

热门文章

  1. home条 防止误碰
  2. map转换 bean和list
  3. Docker 基础常用命令
  4. FPGA 原理、结构、开发流程简述
  5. ctfshow web入门 命令执行 web58-71
  6. 3、app自动化:使用appium定位元素的方式及元素的常用操作
  7. zk单机集群安装
  8. 网线接口调试,Android ADB网络调试!
  9. vue3 深度选择器 scss用法
  10. A表某字段==B表某字段 更新A表的数据