20182109 《Python程序设计》实验二报告

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

课程:《Python程序设计》
班级: 1821
姓名: 卢钟添
学号:20182109
实验教师:王志强
实验日期:2020年4月11日
必修/选修: 公选课

1. 实验内容

  • 设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。
  • 考核基本语法、判定语句、循环语句、逻辑运算等知识点

2. 实验过程及结果

实验二的代码实现分为三部分组成,分别是计算器功能选择界面、运算数的输入和运算以及结束使用界面。

1.功能选择

做为一款能满足日常使用的计算器,本代码共提供加法,减法,乘法,除法,求模,幂乘,正弦,余弦和正切的计算
为了方便用户的输入和程序的读入,由数字1~9代替,运行界面如下图所示

为了让用户能够清楚地看到自己选择了哪一项运算,我设置了一个元组来存储这九项运算功能,方便直接调用来显示当前的功能

考虑到这是一款可以满足日常使用的计算器,那必然是可以连续使用的,当然也可以退出使用
所以我将整个运算过程装入一个大的while(True)循环,并提示用户当其输入数字0时即可退出使用。

如果用户在功能选择界面不小心键入了其他字符也没事,因为程序会提示并让用户再次键入,直至用户选择了本计算器提供的功能。

2.运算数的输入和运算

在这款计算器中,不同的运算可能需要不同个数的运算数,因此我将这九种运算分为两大部分。
前五种运算均需要两个运算数,在后四个运算中,只有幂运算需要底数和幂,其余三个三角函数都只能有一个运算数。
因此我根据用户选择的功能的不同,来建立不同的选择分支


对于每一种运算我都建立了一个函数,由此来缩减主函数的代码行数。
其中,除法是这九个函数中最值得注意的,因为除数不能为0,否则该运算无意义,因此在除法函数中需要添加一个判断,即判断除数是否为零,若为零则需要返回一个错误信息,让主函数得知这个情况。

和其他语言不同,Python中的幂乘运算是通过两个乘号来说明的,即**能表示一个幂乘

而正弦,余弦和正切这三个三角函数可以通过import math导入math库来使用相应的库函数进行计算
在使用math库中的库函数是需要注意的是要用形如
math.sin()math.tan()
来说明这是属于math库的sin(),tan()函数

3.结束使用

当用户输入0表示结束使用时,计算器会输出相应的结束语句并终止程序

4.程序运行结果说明

如图显示在执行幂运算结束后,计算器程序还会持续运行,当用户键入了本程序不支持的功能时,会报错,并提醒用户重新输入,

在执行乘法时,因为运算数都是以二进制数存储在计算器内部的,所以在运算结果的精度上难免会出现些许差错。最后当用户输入0代表不再需要使用时,本程序就正确终止并结束。

5.码云链接

https://gitee.com/python_programming/Python_2020_lzt/blob/master/test_2.py

3. 实验过程中遇到的问题和解决过程

  • 问题1:不能正确使用math库中的函数
  • 问题1解决方案:通过询问老师,得知要在代码中使用某一库中的函数除了import 库名之外还必须要以该格式库名.函数名(参数)来调用函数
  • 问题2:在if条件语句中不能正确的用"|"将逻辑语句连接在一起
  • 问题2解决方案:通过阅读编译器提示的错误信息,得知需要用括号将各个逻辑语句括起来,由此提高了逻辑语句的优先级,这样编译器才能正确理解语句
  • 问题3:在使用元组时,下标越界
  • 问题3解决方案:在直接调用用户输入的基础上对数据-1就能正确显示元组中的元素

其他(感悟、思考等)

在进行第二次实验的过程中,我发现原先自以为掌握的很好的条件判断语句也有或多或少的漏洞,例如总会在一些关键的地方漏掉括号或冒号等重要的符号,
在经过调试,单步运行后我对判定语句、循环语句、逻辑运算这三个知识点有了更深的理解。
同时,这次实验也让我对元组的知识点有了巩固,在使用元组的过程中,我要时刻注意下标是从0开始的,即需要将相应的功能号-1再传到元组中使用。
其实,每次实验不是对自己现有知识的考核,而是对薄弱知识点的突击,在一次次的代码编写过程中,我才能发现自己的缺陷,不足。
如此我才能一步步加深自己的逻辑思维能力,提高自己的编程技巧。

参考资料

  • 《python编程 从入门到实践》
posted @ 2020-04-11 14:41  Rua_ow  阅读(162)  评论(0编辑  收藏