首页 > 技术文章 > 20191204 李浩鹏 2020-2021-2 《Python程序设计》实验二报告

lhpshuaibi 2021-04-26 22:50 原文

课程:《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("*******************************************************\n")
print("输入1进入计算器,输入2调出输入格式,输入0退出程序:")
a=input()
while True:
    if(a=='0'):
        exit(0)
    elif(a=='2'):
        instruction = '输入格式'
        print("{:*^50}\n{}{}".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("\n计算结果为{}\n".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的内置函数,可以节省太多时间了。

参考资料

推荐阅读