课程:《Python程序设计》
班级: 1912
姓名: 李浩鹏
学号: 20191204
实验教师:王志强
实验日期:2021年4月26日
必修/选修: 公选课
1. 实验内容
-
设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。
-
考核基本语法、判定语句、循环语句、逻辑运算等知识点
2. 实验过程及结果
实验代码
"""
作者:小李睡不醒.
文件名称:caculator.py
时间:2021年4月26日23:00:00
"""
注释 = '''
圆周率 = pi
自然对数 = e
'''
输入格式='''
***********************对数***************************
* 加减乘除 取模 整除 运算符 小括号(英文括号) 分别为 + - * / % // ()
* 取绝对值 abs() 例如 abs(-1) = 1
* n次方(可以使用分数) pow(底数,指数) 例如 pow(2,2) = 4
***********************对数***************************
* log log(真数,底数) 例如 log(4,2) = 2
* ln ln(真数) 例如 ln(2.72) = 1.0006
***********************阶乘***************************
* 阶乘 fac() 例如 fac(5) = 120
***********************常见进制转换*********************
* 十进制转二进制 bin() 例如 bin(10) = 1010
* 十进制转八进制 oct() 例如 oct(10) = 12
* 十进制转十六进制 hex() 例如 hex(10) = A
* 任意进制转十进制 int('',x) 例如 int('10100',2) = 20
***********************三角函数************************
* 正弦 sin() 例如sin(pi/2) = 1.0
* 余弦 cos() 例如cos(pi) = -1.0
* 正切 tan() 例如tan(pi) = 1
**********************反三角函数************************
* arcsin(-1到1) arcsin() 例如arcsin(-1) = -1.5707...
* arccos(-1到1) arccos() 例如arccos(-1) = 3.14159...
* arctan arctan() 例如arctan(-1) = 0.78539...
'''
def log(a,n):
return math.log(a,n)
def ln(a):
return math.log(a)
def fac(a):
return math.factorial(a)
def arccos(a):
return math.acos(a)
def arcsin(a):
return math.asin(a)
def arctan(a):
return math.atan(a)
def sin(a):
return round(math.sin(a),2)
def cos(a):
return round(math.cos(a),2)
def tan(a):
return round(math.tan(a),2)
import math
pi = math.pi
e = math.e
print("***********************计算器***************************")
print("**** 使用之前请确定您已知悉输入格式 ****")
print("*******************************************************
")
print("输入1进入计算器,输入2调出输入格式,输入0退出程序:")
a=input()
while True:
if(a=='0'):
exit(0)
elif(a=='2'):
instruction = '输入格式'
print("{:*^50}
{}{}".format(instruction,输入格式,'*'*50))
break;
elif(a=='1'):
break;
else:
print("输入错误,请重新输入")
print("注:{}".format(注释))
flag=1;
while flag:
print("请输入算式:(按回车键退出程序)")
string = input()
if string == '':
flag=0
else:
try:
result = eval(string)
print("
计算结果为{}
".format(result))
except:
print("格式错误!重新输入:")
运行结果
上传结果
3. 实验过程中遇到的问题和解决过程
- 问题1:在实验过程中发现无法计算长式子,只能单独对两个数进行运算,太过局限
- 问题1解决方案:通往网页搜索发现了大部分都说eval()内置函数与math库合用有意想不到的结果,然后就从菜鸟教程中学习了eval()的使用方法!!!是真的好用!!!!配链接菜鸟教程eval()
- 问题2:对于python的内置函数不够了解,不知道都有哪些数学函数,差一点和c语言一样手写去了。。。
- 问题2解决方案:不懂就问,baidu是个好东西,通过百度发现python是真的牛X,进制转换基本上只需要几个字母就能代替,真的是太太太太太太强了!(int('1010',2)=10)
- 问题3:在调用三角函数时,所得到的结果与预期有一点点差距,并没有想象的那么完美如math.sin(math.pi/6)=0.4999....
- 问题2解决方案:发现round()函数可以将数字进行四舍五入,于是根据实际需求我才用了保留2位小数的形式,结果和预期差不多。
其他(感悟、思考等)
只有一个感悟!python太厉害了,内置函数强大到无敌,有了python,在不考虑运行时间的情况下谁还会去用c语言。。。以后有时间一定多了解以下python的内置函数,可以节省太多时间了。