20203412马畅若 实验二《Python程序设计》实验报告
20203412马畅若 实验二《Python程序设计》实验报告
课程:《Python程序设计》
班级: 2034
姓名:马畅若
学号:20203412
实验教师:王志强
实验日期:2021年4月26日
必修/选修: 公选课
一)实验内容
设计并完成一个完整的应用程序,完成加减乘除模等运算。
- 考核基本语法、判定语句、循环语句、逻辑运算等知识点。
首先加入数学函数 math 
再定义函数进行不同的数学运算




最后将四个函数进行输入选择,并进行结束每一个运算后的循环选择

代码
import math
def op1_sim():
print("您的选择是:1.简单运算")
print("可进行的运算有:+,-,*,/,//,%,**")
op=input("请输入你想要进行的运算:")
a=int(input("请输入第一个数:"))
b=int(input("请输入第二个数:"))
if op == '+':
ans =a + b
print("a和b的和是:",a, op, b, "=", ans)
elif op == "-":
ans= a - b
print("a和b的差是:",a, op, b, "=", ans)
elif op == '*':
ans = a * b
print("a和b的乘积是:",a, op, b, "=", ans)
elif op == "/":
ans = a / b
print("a和b的商是:",a, op, b, "=", ans)
elif op == "%":
ans = a % b
print("a除以b的余数是:",a, op, b, "=", ans)
elif op == '//':
ans = a // b
print("a除以b的最大整数是:",a, op, b, "=", ans)
elif op == '**':
ans = a ** b
print("a的b此幂是:",a, op, b, "=", ans)
else:
print("input wrong!")
def op2_tri():
print("您的选择是:2.三角函数运算")
print("可进行的运算有:sin,asin,cos,acos,tan,atan")
op = input("请输入你想要进行的运算:")
a = int(input("请输入一个数字:"))
a=(a/180)* math.pi
if op == 'sin':
ans= math.sin(a)
print(op, "(", a, ")", "=", ans)
elif op == 'cos':
ans= math.cos(a)
print(op, "(", a, ")", "=", ans)
elif op == 'tan':
ans= math.tan(a)
print(op, "(", a, ")", "=", ans)
elif op == 'acos':
ans= math.acos(a)
print(op, "(", a, ")", "=", ans)
elif op == 'asin':
ans= math.asin(a)
print(op, "(", a, ")", "=", ans)
elif op == 'atan':
ans= math.atan(a)
print(op, "(", a, ")", "=", ans)
else:
print("input wrong!")
def op3_fac():
print("您的选择是:3.阶乘运算")
a = int(input("请输入一个数字:"))
ans=1
for i in range(1,a+1):
ans=i*ans
print(a,"的阶乘是",ans)
def op4_equ():
print("您的选择是:4.计算二元一次方程的解")
a = float(input("请输入a:"))
b = float(input("请输入b:"))
c = float(input("请输入c:"))
d = b*b - 4*a*c
if d>=0:
x1 = (-b+math.sqrt(d)) / (2*a)
x2 = (-b-math.sqrt(d)) / (2*a)
if d==0:
print("X1 = X2 = "+str(x1))
else:
print("X1 = "+str(x1)+'\t'+"X2 = "+str(x2))
else:
x1 = str(-b/(2*a)) + '+' + str(math.sqrt(-d)/(2*a)) + 'i'
x2 = str(-b/(2*a)) + '-' + str(math.sqrt(-d)/(2*a)) + 'i'
return "X1 = "+x1+'\t'+"X2 = "+x2
print("X1 = "+x1+'\t'+"X2 = "+x2)
flag=1
while flag == 1:
print("请输入你想选择的功能")
print("1.简单运算")
print("2.三角函数运算")
print("3.阶乘运算")
print("4.计算二元一次方程的解")
n=int(input())
if n ==1:
op1_sim()
elif n ==2:
op2_tri()
elif n == 3:
op3_fac()
elif n == 4:
op4_equ()
else:
print("input wrong!")
flag=int(input("您是否想继续?继续输入1,不继续输入0:\n"))
上传至码云
码云代码连接:马畅若/py (gitee.com)

二)实验结果



三) 实验过程中遇到的问题和解决过程
- 问题1:python种许多语言结构和C语言并不相同,再写代码的时候经常混淆
- 问题1解决方案:多练习自己容易出错的语言结构,如在本次实验中打印结果的方式与函数结合,for循环中i的范围表示
- 问题2:不会用代码表示稍微复杂的数学运算
- 问题2解决方案:通过查阅课本和百度,引入math函数进行三角运算(而且要记得在代码中把输入的角度换算为弧度制),阶乘的for循环计算
- 问题3:代码重复部分过多导致浪费
- 问题3解决办法:通过定义函数来解决同一内容的多次重复,比如
def operation(a, b, operator):
if operator == "+":
return a + b
elif operator == "-":
return a - b
elif operator == "*":
return a * b
elif operator == "/":
return a / b
但是在写代码的时候,与C语言不同的是,python更要注意下一行的代码与前面的空格间距,以定义函数而言,如果每行代码的位置没有按照逻辑,将会导致代码无法运行
四)感悟思考
python与C语言有很多的不同之处,需要对比比较,在写代码时仔细分析,再经常练习,才能孰能生巧。
五)参考资料
20203412马畅若 实验二《Python程序设计》实验报告的更多相关文章
- 20175212童皓桢 Java实验二-面向对象程序设计实验报告
20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...
- 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验二 面向对象程序设计 实验报告
20175316 盛茂淞 2018-2019-2 <Java程序设计>实验二 面向对象程序设计 实验报告 (一)单元测试 在 IDEA中我们把产品代码放在src目录中,把测试代码放在tes ...
- 20155220java实验二 面向对象程序设计 实验报告
一.实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步骤 (一)单元测试 (1) 三种代码 伪代码 产 ...
- Python程序设计实验报告二:顺序结构程序设计(验证性实验)
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 崔攀 学号3190505136 成绩 日期 2020.3.22 指导老师 修宇 [实验 ...
- PYTHON程序设计实验
Python程序设计实验报告一: 熟悉IDLE和在线编程平台 安徽工程大学 Python程序设计实验报告 班级 物流191 姓名 邹缕学号 3190505117成绩 ▁▁▁ 日期 2020.3.5 指 ...
- 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 指导老师 修宇 [实验目的 ...
- 2018-2019-2 20175306实验二面向对象程序设计《Java开发环境的熟悉》实验报告
2018-2019-2 20175306实验二面向对象程序设计<Java开发环境的熟悉>实验报告 面向对象程序设计-1 实验要求: 参考:> http://www.cnblogs.c ...
随机推荐
- Solon2 开发之容器,八、动态代理的本质
在 Java 里动态代理,主要分:接口动态代理 和 类动态代理.因为它的代理类都是动态创建的,所以名字里会带上"动态". 官网的有些地方叫"代理",也有些地方叫 ...
- 【Windows】ip地址修改器v5.0.5.4 修改ip更简便
ip地址修改器v5.0.5.4 修改ip更简便 IP地址修改器,一款能够快速的切换IP地址,在几个不同的固定IP之间进行切换,手动输太麻烦,所以可以用到这款IP地址修改器! 下载 ip地址修改器v5. ...
- P15_了解小程序的版本阶段与上线的主要步骤
协同工作和发布 - 小程序的版本 软件开发过程中的不同版本 在软件开发过程中,根据时间节点的不同,会产出不同的软件版本,例如: 开发者编写代码的同时,对项目代码进行自测(开发版本) 直到程序达到一个稳 ...
- sql注入关键字
id=inurl:Produit.php?id=inurl:Profile_view.php?id=inurl:Publications.php?id=inurl:Stray-Questions-Vi ...
- 4 .NET Core笔试题
1.说说.NET7中 _ViewImports文件的作用? 2.什么是Razor页面? 3.说说.NET5中 __ViewStart文件的作用? 4.如何在Razor页面中实现数据模型绑定? 5.如何 ...
- 大曝光!从RabbitMQ平滑迁移至Kafka架构设计方案!
历史原因,公司存在多个 MQ 同时使用的问题,我们中间件团队在去年下半年开始支持对 Kafka 和 Rabbit 能力的进行封装,初步能够完全支撑业务团队使用. 鉴于在之前已经基本完全实施 Kafka ...
- Mac 创建Python3虚拟环境
Mac 创建Python3虚拟环境 1.安装virtualenv pip3 install virtualenv 安装virtualenvwrapper pip3 install virtualenv ...
- cdq 分治学习笔记
CDQ 分治是一种很玄学的东西. Part 0 引子 相信大家都会归并排序,又都知道归并排序求逆序对怎么求的 如果连归并求逆序对都不会那你为什么要学 cdq 分治阿喂 void merge_sort( ...
- Vue scoped样式
scoped样式: 作用:让样式在局部生效,防止冲突 写法:<style scoped>
- mui、拍照、个推推送消息【问题链接】
HTML5 Plus 拍照或者相册选择图片上传 HBuilder webApp开发(四)相册/拍照-图片上传 HTML5+ API 个推推送, APP是用Webview内嵌WEB程序,个推角标如何实现 ...