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. 【CTO变形记】高维视角,跳出“农场主与火鸡”

    前言:看待人事物的角度决定了我们的思考方向和处理事情的方式.在这些认识人事物的过程中,导致了一些"事故"发生:就好比"以手指月",原本要看"月亮&qu ...

  2. vue-cli环境搭建 (超详细保姆级教程)

    一.使用之前,我们先来掌握3个东西是用来干什么的. npm: Nodejs下的包管理器. webpack: 它主要的用途是通过CommonJS的语法把所有浏览器端需要发布的静态资源做相应的准备,比如资 ...

  3. 关于Promise.all()的理解

    本篇笔记是抄的别人的,目的只是为了日后有用到时有个参考,原文地址是https://www.jianshu.com/p/7e60fc1be1b2 一.Pomise.all的使用 Promise.all可 ...

  4. JZOJ 3207.Orthogonal Anagram

    \(\text{Problem}\) 给出一个字符串,求经过重新排列的另一个字典序最小的字符串,满足:相同的位置上 原串与结果串的字符不同.不存在则输出空串. \(\text{Solution}\) ...

  5. 题解 CF17201 A~D2

    A 先约分,显然答案必然是 0 或 1 或 2 相等为 0,主要考虑 1 或 2 的情况. 假设 \(a>b\),令 \(c = a/b\),如果 \(c\) 为整数答案为 \(1\),否则为 ...

  6. Chai 3D之创建项目

    推荐:将 NSDT场景编辑器 加入你的3D开发工具链 1.构建应用目录   我们将设置使用 CHAI3D 构建应用程序所需的基本目录结构和文件.根据您可能要使用的显示器或 GUI 库,为 FreeGL ...

  7. yarn的基础语法:yarn安装完vue cli3后提示不是内部命令

    : 第一步:安装nodejs: 第二步:全局安装vue-cli 解决方案: 全局搜索vue.cmd 将vue.cmd所在的路径添加到环境变量Path后面.再执行vue -V即可.

  8. script和template里可选链运算符?.报错Syntax Error: Unexpected token (64:2)

    前情:babel-core@6.2.3,  vue@2.7.14 试过的方法:1.安装@babel/plugin-proposal-optional-chaining,设置.babelrc文件如下,报 ...

  9. 树莓派lite安装桌面

    sudo apt update sudo apt install xorg -y sudo apt install lxde openbox -y sudo apt install pix-icons ...

  10. Neighborhood Attention Transformer概述

    0.前言 相关资料: arxiv github 论文解读(CSDN) 论文基本信息: 作者单位:Facebook 发表时间:arxiv2022(2022.4.14) 1.针对的问题 1.之前的视觉Tr ...