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程序设计》实验二报告的更多相关文章

  1. Python程序设计实验报告二:顺序结构程序设计(验证性实验)

      安徽工程大学 Python程序设计 实验报告 班级   物流191   姓名  崔攀  学号3190505136 成绩 日期     2020.3.22     指导老师       修宇 [实验 ...

  2. 201843 2019-2020-2 《Python程序设计》实验二报告

    201843 2019-2020-2 <Python程序设计>实验二报告 课程:<Python程序设计> 班级: 1843 姓名: 李新锐 学号:20184302 实验教师:王 ...

  3. 20192113 2020-2021-2 《Python程序设计》实验二报告

    20192113 2020-2021-2 <Python程序设计>实验二报告 课程:<Python程序设计> 班级: 1921 姓名: 衣丽莎 学号:20192113 实验教师 ...

  4. 201922904李龙威 2019-2020-2 《Python程序设计》实验二报告

    20192204 2019-2020-2 <Python程序设计>实验二报告 课程:<Python程序设计> 班级: 1922 姓名: 李龙威 学号:20192204 实验教师 ...

  5. PYTHON程序设计实验

    Python程序设计实验报告一: 熟悉IDLE和在线编程平台 安徽工程大学 Python程序设计实验报告 班级 物流191 姓名 邹缕学号 3190505117成绩 ▁▁▁ 日期 2020.3.5 指 ...

  6. Python程序设计实验报告一:熟悉IDLE和在线编程平台

    安徽工程大学 Python程序设计 实验报告 班级   物流191   姓名  崔攀  学号3190505136 成绩_____           日期     2020.3.8     指导老师  ...

  7. Python程序设计 实验 1 熟悉 IDLE 和在线编程平台

    ------------恢复内容开始------------ 安徽工程大学 Python程序设计 实验报告 班级   物流191   姓名  姚彩琴  学号3190505129 成绩 日期     2 ...

  8. Python程序设计实验报告四:循环结构程序设计(设计型实验)

    安徽工程大学 Python程序设计 实验报告 班级   物流191   姓名  姚彩琴  学号3190505129 成绩 日期     2020.4.8     指导老师       修宇 [实验名称 ...

  9. Python程序设计实验报告三:分支结构程序设计

    安徽工程大学 Python程序设计 实验报告 班级   物流191   姓名  姚彩琴  学号3190505129 成绩 日期     2020.4.5     指导老师       修宇 [实验目的 ...

  10. 20145316《Java程序设计》实验二报告

    20145316<Java程序设计>实验二报告 一.实验目的与要求 1.初步掌握单元测试和TDD. 2.理解并掌握面向对象三要素:封装.继承.多态. 3.初步掌握UML建模. 4.熟悉S. ...

随机推荐

  1. 推荐ssh工具

    介绍一些我常用的ssh工具 1.Xshell ​ Xshell应该是一款家喻户晓的ssh连接工具,本人有幸也在很长一段时间都在使用Xshell,但是Xshell他是收费的!而且每次关闭后都会有一个提示 ...

  2. (已解决)富文本编辑器:使用layui的layedit怎么回显存放在数据库里的富文本数据(包含有图片base64码)?

    1. 背景 我把富文本内容从后台导入到前端,回显在layui的layedit里面. 2. 步骤 直接在<textarea></textarea>中间进行赋值(我用的是模板赋值) ...

  3. 12组-Beta冲刺-2/5

    一.基本情况 队名:字节不跳动 组长博客:https://www.cnblogs.com/147258369k/p/15594989.html Github链接:https://github.com/ ...

  4. REST开发(1)

    REST风格 REST简介 Rest(Representational State Transfer),表现形式状态转换(访问网络资源的形式) 传统风格资源描述形式 http://localhost/ ...

  5. js获取字符串中含有某个字符个数

    得到字符串含有某个字符的个数 /** * 获取字符串中某字符的个数 * @param str 字符串 * @param char char为某字符 * @returns String */ const ...

  6. pywinauto app自动化的实践

    from pywinauto import Application app = Application(backend='uia').start("notepad") # prin ...

  7. mysql压缩表小记

    参考文档: https://www.163.com/dy/article/GI4CH5N305319P76.html https://learn.lianglianglee.com/专栏/MySQL实 ...

  8. docker 安装portainer容器后,启动/Portainer 安装MySQL并开启远程访问

    启动命令: docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --nam ...

  9. C语言学习记录(三)

    C语言学习记录(三) 一.知识要点(数据类型.运算符与表达式) 1.C语言的数据类型 C语言数据结构有:基本类型.指针类型.构造类型和空类型.其中基本类型:查看书籍的22页表3-1. C语言的基本数据 ...

  10. j2ee目录索引

    j2ee  不完全目录 Eclipse中配置约束(DTD,XSD) Eclipse 快捷键 及其 xsd dtd配置本地约束 ===================================== ...