201922904李龙威 2019-2020-2 《Python程序设计》实验二报告
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程序设计》实验二报告的更多相关文章
- 201843 2019-2020-2 《Python程序设计》实验二报告
201843 2019-2020-2 <Python程序设计>实验二报告 课程:<Python程序设计> 班级: 1843 姓名: 李新锐 学号:20184302 实验教师:王 ...
- PYTHON程序设计实验
Python程序设计实验报告一: 熟悉IDLE和在线编程平台 安徽工程大学 Python程序设计实验报告 班级 物流191 姓名 邹缕学号 3190505117成绩 ▁▁▁ 日期 2020.3.5 指 ...
- Python程序设计实验报告二:顺序结构程序设计(验证性实验)
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 崔攀 学号3190505136 成绩 日期 2020.3.22 指导老师 修宇 [实验 ...
- Python程序设计实验报告一:熟悉IDLE和在线编程平台
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 崔攀 学号3190505136 成绩_____ 日期 2020.3.8 指导老师 ...
- Python程序设计 实验 1 熟悉 IDLE 和在线编程平台
------------恢复内容开始------------ 安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 姚彩琴 学号3190505129 成绩 日期 2 ...
- Python程序设计实验报告四:循环结构程序设计(设计型实验)
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 姚彩琴 学号3190505129 成绩 日期 2020.4.8 指导老师 修宇 [实验名称 ...
- Python程序设计实验报告三:分支结构程序设计
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 姚彩琴 学号3190505129 成绩 日期 2020.4.5 指导老师 修宇 [实验目的 ...
- 20192113 2020-2021-2 《Python程序设计》实验二报告
20192113 2020-2021-2 <Python程序设计>实验二报告 课程:<Python程序设计> 班级: 1921 姓名: 衣丽莎 学号:20192113 实验教师 ...
- 20145316《Java程序设计》实验二报告
20145316<Java程序设计>实验二报告 一.实验目的与要求 1.初步掌握单元测试和TDD. 2.理解并掌握面向对象三要素:封装.继承.多态. 3.初步掌握UML建模. 4.熟悉S. ...
随机推荐
- idea的jar文件,“java.lang.SecurityException: Invalid signature file digest for Manifest main attribute
感谢大佬:https://blog.csdn.net/mingyuli/article/details/84674483 命令行运行jar出现问题: 1.找不到主类.打开jar文件包,在MANIFES ...
- 学习jsp篇:jsp简单实例之二登录
编程环境:IDEA,Tomcat,JavaEE 一.实例二登录 1.在自己建的工程下的web目录下建一个文件夹为login,在login中编写登录代码(其实就是和实例一同一个项目) 2.先建登录页面j ...
- java file已存在,新建流写入此文件是否会覆盖原本file信息
java中建立文件输出流,当文件不存在时会新建一个文件:如果有同名文件,自动覆盖.不存在时自动建立.FileOutputStream的默认构造方法是直接覆盖掉原来的文件,而FileOutputStre ...
- Zabbix企业级开源监控解决方案
Zabbix企业级开源监控解决方案 目录 Zabbix企业级开源监控解决方案 一.Zabbix 1. 监控系统的必要性 2. 监控软件的作用 3. Zabbix的定义 4. Zabbix的监控原理 5 ...
- Spark入门案例 - 统计单词个数 / wordcount
Scala版 import org.apache.spark.{SparkConf, SparkContext} object WordCountScala { def main(args: Arra ...
- PHP+mysql常考题
PHP+mysql常考题 来自<PHP程序员面试笔试宝典>,涵盖了近三年了各大型企业常考的PHP面试题,针对面试题提取出来各种面试知识也涵盖在了本书. 常考的mysql基础题 问题:设教务 ...
- MySQL架构原理之存储引擎InnoDB_Redo Log和BinLog
Redo Log和Binlog是MySQL日志系统中非常重要的两种机制,有很多相似之处同时也有差别,本文探究两者细节和区别. 一.Redo Log 1.Redo Log介绍 Redo:顾名思义就是重做 ...
- nginx反向代理初体验
需求:部署两台tomcat,默认监听端口分别是8080和8081.访问nginx服务时,自动跳转到相应tomcat服务. 先部署一台机器:就宿主机上tomcat服务: 修改nginx配置:vim ng ...
- 网页外部注入vConsole调试
概要 本篇介绍一种十分方便的方法为网站添加 vConsole 调试(通过篡改请求外部注入的方式,不需要您是网站的拥有者,主要用于调试线上站点). 之前已经发过一篇<借助FreeHttp为任意 ...
- kafka3.x原理详解看这篇就够了
一.概述 (一).kafka的定义 1.定义 1)kafka传统的定义:kafka是一个分布式的基于发布/订阅模式的消息队列,主要用于大数据实时处理领域 2)kafka最新的定义:kafka是一个开源 ...