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. 【Word】通配符和特殊字符

    [Word]通配符和特殊字符 ^p 换行符 正则表达式 使用\转义,用于[]等 参考资料 Word通配符怎么用?使用Word通配符的方法

  2. xss-labs

    level1 <h1 align=center>欢迎来到level1</h1> <h2 align=center>欢迎用户te111</h2><c ...

  3. NanoPi R1 安装 python环境 及opencv

    (友善NanoPi  1G RAM/8GB eMMC) 安装python2/python3  pip/pip3 环境 sudo apt-get install python sudo apt-get ...

  4. 简单理解gqrx是什么

    gqrx:Gqrx是一个基于gnuradio和Qt架构,开发的一个开源的SDR接收机的应用.下图是他的一个运行界面: gnu radio GNU Radio是一个自由软件开发工具包,提供实现软件无线电 ...

  5. oracle ebs 账户组合验证

    DECLARE l_segment1 GL_CODE_COMBINATIONS.SEGMENT1%TYPE; l_segment2 GL_CODE_COMBINATIONS.SEGMENT2%TYPE ...

  6. django限制表单上传图片的大小

    django的ImageField没有提供控制上传图片的内置方法,我们可以在表单验证的过程中用clean函数来控制,搬运博客园 python小童鞋 ,可以通过重写ImageField的方法来控制上传图 ...

  7. BIP 两个请求成功后,才能做某一件事

    //保存前校验 let SetXStatus = 0; viewModel.on("beforeSave", function (args) { let _this = this; ...

  8. ubuntu - 程序运行的一些基础知识

    1.指定编码格式 -finput-charset=GB2312 指定 C 程序的编码方式为 GB2312,不指定时默认编码方式为 UTF-8 -fexec-charset=GB2312 指定 可执行程 ...

  9. wpf treeview 选中节点加载数据并绑定

    <TreeView Grid.Row="0" Grid.Column="0" x:Name="FolderView" Canvas.T ...

  10. 不安全的权限 0644,建议使用 0600 虚拟机无法分配内存 virtual memory exhausted: Cannot allocate memory

    我都不知道我写了啥,自己都很混乱 aoteman@aoteman-virtual-machine:/tmp$ sudo -s #进入root用户模式 [sudo] aoteman 的密码: 12对不起 ...