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程序设计》实验报告的更多相关文章

  1. 20175212童皓桢 Java实验二-面向对象程序设计实验报告

    20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...

  2. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验二 面向对象程序设计 实验报告

    20175316 盛茂淞 2018-2019-2 <Java程序设计>实验二 面向对象程序设计 实验报告 (一)单元测试 在 IDEA中我们把产品代码放在src目录中,把测试代码放在tes ...

  3. 20155220java实验二 面向对象程序设计 实验报告

    一.实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步骤 (一)单元测试 (1) 三种代码 伪代码 产 ...

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

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

  5. PYTHON程序设计实验

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

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

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

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

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

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

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

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

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

  10. 2018-2019-2 20175306实验二面向对象程序设计《Java开发环境的熟悉》实验报告

    2018-2019-2 20175306实验二面向对象程序设计<Java开发环境的熟悉>实验报告 面向对象程序设计-1 实验要求: 参考:> http://www.cnblogs.c ...

随机推荐

  1. eclipse配置JD-Eclipse反编译java的class文件 【2021年最新版使用教程】

    简介 就是像eclipse那样ctrl+左键点击查看源码,不过eclipse本身不带这种插件而已 0x00 下载JD-eclipse 官网:http://java-decompiler.github. ...

  2. 真正“搞”懂HTTPS协议17之TLS握手

    经过前两章的学习,我们知道了通信安全的定义以及TLS对其的实现~有了这些知识作为基础,我们现在可以正式的开始研究HTTPS和TLS协议了.嗯--现在才真正开始. 我记得之前大概聊过,当你在浏览器的地址 ...

  3. python_变量类型

    列表:用[]标识,可以用下标进行访问,可以更改值 List = [123,'book'] print List 元组:用()标识,可以用下标进行访问,但是不能更改元素值,相当于只读 tuple = ( ...

  4. qt元对象系统之 Q_PROPERTY宏

    这个宏需要和Q_OBJECT宏结合使用, moc工具为Q_OBJECT宏所声明的变量和函数生成定义 同时为Q_PROPERTY宏添加函数的映射,以便qt_static_metacall 能够寻找到对应 ...

  5. javascript的防抖与节流

    一.节流 一段时间内只能触发一次,如果这段时间内触发多次事件,只有第一次生效会触发回调函数,一段时间过后才能再次触发(一定时间内只执行第一次) 应用场景 1.鼠标连续不断地触发某事件(如点击),只在单 ...

  6. CF1367E Necklace Assembly

    题目传送门 思路 提供一种比现有的两篇题解都简单的方法. 我们枚举答案,发现最终的答案数组一定是由多个完全相同的块组成的,并且块长必定是 \(k\) 的因数. 然后我们考虑枚举答案 \(i\),那么此 ...

  7. Vue学习笔记之表单绑定

    1. 概述 1.1. 什么是数据的双向绑定 Vue.js是一个MV VM框架, 即数据双向绑定, 即当数据发生变化的时候, 视图也就发生变化, 当视图发生变化的时候,数据也会跟着同步变化.这也算是Vu ...

  8. 如何创建一个浏览器版的`Window11`

    如何创建一个浏览器版的Window11 我们接下来将创建一个在浏览器运行的Window11,可以先看看效果图 这是基于Windows 11 in React修改的功能,我们接下来就将使用Windows ...

  9. AOP中的一些重要术语简介

    AOP的定义:AOP(Aspect Oriented Progamming)利用称为"横切"的技术,剖解开封装的对象内部,把多个类的公共行为封装到一个可重用模块中,便于减少重复代码 ...

  10. ElasticSearch 实现分词全文检索 - 概述

    需求 做一个类似百度的全文搜索功能 所用的技术如下: ElasticSearch Kibana 管理界面 IK Analysis 分词器 SpringBoot ElasticSearch 简介 ES ...