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. eclipse使用的步骤

    eclipse使用的步骤: 第一步: 选择工作目录. 以后在Eclipse上面写的所有代码都是在工作目录上的. 第二步: 在Project Exploer 窗口上创建一个工程,以后我们写代码都是以工程 ...

  2. iOS 模糊、精确搜索匹配功能方法总结 By HL

    字符串搜索主要用于UITableView的搜索功能的筛选,过滤,查询 下面是一些流行的搜索查询方法 一.遍历搜索 for循环 根据要求:精确搜索(判读字符串相等)   模糊搜索(字符串包含) 相关知识 ...

  3. JavaWeb项目中斜杠(/)表示web工程、webapps的场景

    "/"代表当前web工程的常见应用场景 ①.ServletContext.getRealPath(String path)获取资源的绝对路径 /** * 1.ServletCont ...

  4. Spring中声明式事务处理和编程式事务处理的区别

    编程式事务:所谓编程式事务指的是通过编码方式实现事务,即类似于JDBC编程实现事务管理.管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManag ...

  5. make小tip

    总所周知make一般需要Makefile才能编译相关源码,但也可以无需Makefile就能编译一些简单的源代码. 在算法竞赛里,一道题的源程序一般只有一个文件,此时用Makefile显得十分累赘,但如 ...

  6. 《手把手教你》系列技巧篇(六十六)-java+ selenium自动化测试 - 读写excel文件 - 上篇(详细教程)

    1.简介 在自动化测试,有些我们的测试数据是放到excel文件中,尤其是在做数据驱动测试的时候,所以需要懂得如何操作获取excel内的内容.由于java不像python那样有直接操作Excle文件的类 ...

  7. 框架5--nginx安装部署 下(web服务)

    目录 1.提纲 2.Nginx虚拟主机 3.Nginx日志 4.Nginx访问控制模块 5.Nginx状态监控模块 6.访问连接控制模块 框架5--nginx安装部署 下(web服务) 1.提纲 1. ...

  8. ☆☆如何学习MATLAB☆☆

    大多数朋友第一次接触MATLAB一般都是在大学里面开设的MATLAB课程,第一次真正使用MATLAB是在自己的毕业论文中用到.所以对于MATLAB可以说是既爱又恨.爱,是因为使用MATLAB几乎可以实 ...

  9. Solution -「AGC 036D」「AT 5147」Negative Cycle

    \(\mathcal{Descriprtion}\)   Link.   在一个含 \(n\) 个结点的有向图中,存在边 \(\lang i,i+1,0\rang\),它们不能被删除:还有边 \(\l ...

  10. CVE-2021-33739 EOP漏洞分析

    背景   CVE-2021-33739是一个UAF漏洞,成因是由于在对象CInteractionTrackerBindingManagerMarshaler与对象CInteractionTracker ...