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

课程:《Python程序设计》

班级: 1922

姓名: 李龙威

学号:20192204

实验教师:王志强

实验日期:2020年4月14日

必修/选修: 公选课

1.实验内容

设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。

考核基本语法、判定语句、循环语句、逻辑运算等知识点

2. 实验过程及结果

本实验中设计的计算机可进行加减乘除法及平方根运算、指对数及三角函数的混合运算

通过eval()函数将用户输入的字符串类型的表达式转化为命令形式

使用while永真循环与if语句使得运算可反复进行

导入math模块后将数学表达式的输入方式在上方提示出来

然后用户将想要计算的表达式按格式输入即可计算比较复杂的混合运算

代码截图



代码运行结果



源代码:

print("python计算器,要计算的表达式请自己手动输入")
print("支持加减乘除、平方根运算、指对数及三角函数的混合运算,指对数及三角函数运算的表达式的输入要严格采用下面给出的形式")
print("要计算a的平方根请键入”math.sqrt(a)“")
print("要计算a的b次方请键入“math.pow(a,b)”")
print("要计算log以a为底b的对数请键入“math.loga(b)”")
print("要计算tan(a)请键入”math.tan(a)“")
print("要计算sin(a)请键入“math.sin(a)”")
print("要计算cos(a)请键入”math.cos(a)“")
print("数学中的Π/n可用”math.pi/n“表示")
while True:
expression = input("在此输入要计算的表达式:") #用户手动输入想要计算的表达式
result = eval(expression) #用eval()函数将用户手动输入的字符串类型的数学表达式转化为命令,可以节省掉大篇幅的代码
print(str(expression)+'='+str(result))
a = int(input("输入数字1继续计算,输入数字0中止运算:"))
if a == 0:
print("感谢您的使用,再见^_^")
break;

代码的码云链接:https://gitee.com/king_li_long/python/commit/3eeb5057233640b995f25057a5d1fe2ca213d2fa

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

  • 问题:之前试过连用多个if...elif...default语句来判断用户要计算的运算类型,但是涉及代码十分冗杂,且无法有效进行复合运算
  • 解决方案:使用eval()函数直接将用户输入的字符串转化为命令,这样不仅简化了代码,而且运算效率也得以提高

其他(感悟、思考等)

感悟:python中有些函数的功能真的强大,可以简化不少问题

参考资料

eval() python怎么把字符串变成可执行命令?链接:https://blog.csdn.net/weixin_34128237/article/details/91933587

201922904李龙威 2019-2020-2 《Python程序设计》实验二报告的更多相关文章

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

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

  2. PYTHON程序设计实验

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 获取公网ip,获取用户城市地址

    <?php class GetIp { public static $api = 'http://ip.taobao.com/service/getIpInfo.php?ip='; public ...

  2. js trim()方法

    从字符串中移除前导空格.尾随空格和行终止符. 语法 stringObj.trim() 参数 stringObj 必选.String 对象或字符串.trim 方法不修改该字符串. 返回值 已移除前导空格 ...

  3. NoSQL之Redis配置与优化

    NoSQL之Redis配置与优化 目录 NoSQL之Redis配置与优化 一.关系数据库和非关系数据库 1. 关系型数据库 2. 非关系型数据库 3. 非关系型数据库产生背景 4. 关系型数据库和非关 ...

  4. 深入Java微服务之网关系列1:什么是网关

    ​ 前言 近来,在想着重构一个新的产品.准备采用微服务的技术解决方案,来搭建基础设施框架.网关,是一个必不可少的组件.那么,网关到底是什么? 其又有什么特点或者特性,成为微服务必不可少的组件呢?今天, ...

  5. python数据分析入门笔记[1]

    1.Numpy: Numpy是python科学计算的基础包,它提供以下功能(不限于此): (1)快速高效的多维数组对象naarray (2)用于对数组执行元素级计算以及直接对数组执行数学运算的函数 ( ...

  6. 关于 Xcode 更新 appleID 更换

    可能不少人会遇到 前一位同事走之后,他的 appID帐号下载的东西更新不了 下面给予大家一个解决办法  例如 Xcode  1.打开引用程序目录 2.找到Xcode,右键"显示包内容&quo ...

  7. vue如何获取thymeleaf渲染的input值?

    写项目时前端用了vue+模板引擎用了thymeleaf,然后有一个输入框取值问题让我很纠结,问题如下: <input class="count-num" type=" ...

  8. 图的深度遍历(C语言)邻接矩阵表示

    知识讲解: 图的遍历分为两种,深度遍历与广度遍历.这里讨论深度遍历. 以上图为例讨论图(图片来自<算法笔记>)的深度遍历: 设图形的顶点数为n. 先从顶点v0开始,用一个数组vis[n]来 ...

  9. volatile关键字的相关学习记录

    1:volatile是什么? Volatile是java虚拟机提供的一种轻量级的同步机制,具有 三大特性,分别是:保证可见性.不保证原子性.禁止指令重排 可见性: 概念:每一个线程都有自己的工作内存, ...

  10. oracle11g在windows下安装

    oracle下载 https://www.oracle.com/database/technologies/oracle-database-software-downloads.html 下载11g ...