20223405 李硕 2022-2023-2 《Python程序设计》实验二报告
课程:《Python程序设计》
班级: 2234
姓名: 李硕
学号:20223405
实验教师:王志强
实验日期:2023年3月23日
必修/选修: 公选课
1.实验内容
设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。
2. 实验过程及结果
编写代码,代码如下:
import math
def add(a,b):
return a+b
def jian(a,b):
return a-b
def x(a,b):
return a*b
def chu(a,b):
return a/b
def yu(a,b):
return a%b
def sqr(a):
return math.sqrt(a)
def fang(a,b):
return a**b
def ln(a):
return math.log(a)
def fab(a):
return abs(a)
def arcsi(a):
if a<=-1 or a>=1:
print("输入数值越界\n请输入-1到1之间的数\n")
a=int(input())
return math.asin(a)
else:
return math.asin(a)
def arccs(a):
if a<=-1 or a>=1:
print("输入数值越界\n请输入-1到1之间的数\n")
a=int(input())
return math.acos(a)
else:
return math.acos(a)
def arcta(a):
if a<=-1 or a>=1:
print("输入数值越界\n请输入-1到1之间的数\n")
a=int(input())
return math.atan(a)
else:
return math.atan(a)
def si(a):
return math.sin(a)
def cs(a):
return math.cos(a)
def ta(a):
return math.tan(a)
repeat=1
while repeat==1:
print("请输入运算符号和运算数据来实现功能\n可进行四则运算、乘方(输入**)、开二次方(输入sqrt)、取以e为底的对数(输入log)、取绝对值(输入fabs)、取余(输入%)、反三角函数(输入arcsin等)、三角函数(输入sin、cos等)\n")
choice=input()
print("请输入两个数,如果是针对一个数的运算(如开方),第二个数请输入0\n")
a=float(input())
b=float(input())
if choice=='+':
print(add(a,b))
elif choice=='-':
print(jian(a,b))
elif choice=='*':
print(x(a,b))
elif choice=='/':
print(chu(a,b))
elif choice=='%':
print(yu(a,b))
elif choice=="sqrt":
print(sqr(a))
elif choice=="log":
print(ln(a))
elif choice=="fabs":
print(abs(a))
elif choice=="**":
print(fang(a,b))
elif choice=="arcsin":
print(arcsi(a))
elif choice=="arccos":
print(arccs(a))
elif choice=="arctan":
print(arcta(a))
elif choice=="sin":
print(si(a))
elif choice=="cos":
print(cs(a))
elif choice=="tan":
print(ta(a))
repeat=int(input("若想再次计算请输入1,否则按其它任意键退出\n"))
提交至Gitee:
运行结果:
3. 实验过程中遇到的问题和解决过程
- 问题1:有些计算是两个数的运算,有些是单个数字的运算,如果分运算符进行输入会显得代码过于复杂
- 问题1解决方案:统一让用户输入两个数,若是单个数字的运算,则让用户在另一个数字处输入0
其他(感悟、思考等)
这次实验是对第一次的延续,同样对我们的基本语句以及基本控制结构有着较高的要求,需要我们能够熟练运用基本控制结构来实现计算器不同类型运算以及程序多次运行功能的实现,同时也附加性地涉及到了简单的函数调用和定义。但是在选择不同运算符的语句中,如果仅用if和elif进行选择和切换未免会让代码过于冗杂而且效率低下,因此在此我们需要寻求到更加有效的选择结构的算法或者学习到更加高效的选择结构语句,才能彻底攻克这一问题,这也需要我们进行更加长期的学习。