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 ...
随机推荐
- W04 散文周刊 : 重回Emacs
W04 散文周刊 : 重回Emacs 邮箱:ppbhoy@qq.com 博客地址: www.pipihao.com 公纵号:南湖小皮 公告:后面会开始稳定更新 使用Emacs还是有些沉重,我一直将Em ...
- springcloud12-spring cloud stream
1.基础说明 官网:https://spring.io/projects/spring-cloud-stream#overview 文档:https://docs.spring.io/spring ...
- Spring事务失效原因分析解决
文章目录 1.方法内部调用 2.修饰符 3.非运行时异常 4.try-catch捕获异常 5.多线程调用 6.同时使用@Transactional和@Async 7.错误使用事务传播行为 8.使用的数 ...
- 与ChatGPT关于测试问题的对话
1测试人员创造什么价值? 测试人员在软件开发生命周期中扮演着非常重要的角色,他们的主要职责是确保软件在发布前达到高质量标准.以下是测试人员为软件开发和业务提供的价值: 1.缺陷检测和修复:测试人员的主 ...
- Spring(认识、IOC的开发过程、创建bean的方式)
spring框架(spring全家桶) spring FrameWork springBoot+springCloud+springCloud Data Flow 一:spring的两大核心机制: I ...
- 配置项目请求地址和axios以及实现token过期无痛刷新
配置请求地址:config->index.js 一个项目里通常有一个config->index.js,该文件包含了当前项目的请求地址,以及项目的版本信息. // 请求地址 const AP ...
- 【USACO 2021 US Open, Gold】Permutation
\(\text{Solution}\) 发现每个时刻的状态一定是所有点在一个最外围三角形的内部 设 \(f_{i,j,k,p}\) 表示排列填到第 \(p\) 位,此时图形最外围的三角形是以编号为 \ ...
- C#神器"BlockingCollection"类实现C#神仙操作
前言 如果你想玩转C# 里面多线程,工厂模式,生产者/消费者,队列等高级操作,就可以和我一起探索这个强大的线程安全提供阻塞和限制功能的C#神器类 BlockingCollection简单介绍 微软介绍 ...
- PostGIS之空间投影
1. 概述 PostGIS 是PostgreSQL数据库一个空间数据库扩展,它添加了对地理对象的支持,允许在 SQL 中运行空间查询 PostGIS官网:About PostGIS | PostGIS ...
- LeetCode-630 课程表Ⅲ
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/course-schedule-iii 题目描述 这里有 n 门不同的在线课程,按从 1 到 n ...