20191212 2020-2021-2 《Python程序设计》实验二报告

课程:《Python程序设计》
班级: 1912
姓名: 斯廷响
学号:20191212
实验教师:王志强老师
实验日期:2021年5月5日
必修/选修: 公选课

1.实验内容

  • 设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。

  • 考核基本语法、判定语句、循环语句、逻辑运算等知识点
  • 要求:创建工程项目,使用Python语言实现具体的操作运算,并完成程序调试和运行,代码托管到码云。


2. 实验过程及结果
设计思路:

通过调用python的库,可以获取许多种包含取绝对值、求对数、求阶乘、进制转换等数学运算。只要通过上网查询即可得知,又因为python的一大特点就是数据库中包含大量的现成函数供直接调用,所以这样不违背程序设计的原则,所以合理。(这个思路参考了以前用C语言写程序时的想法)

这样做不进可以大大减小程序的复杂度也可以使工作量减少,免去了写专门函数的过程。通过查询资料可得知一部分函数,在经过自己的加工以及定义设计可以得到abs() 、fac()  、bi() 、oc() 、abbi()  、aboc()等函数可以用来调用(具体功能见代码的pre注释说明部分)。

代码如下:

pre = '''

四则运算: 直接+-*/(()) : (9*9)+3-2/2 = 83
幂运算:
平方 sqr(底数) : sqr(8) = 64
三次方 cube(底数) 例: cube(3) = 27
n次方 pow(底数,指数) 例: pow(3,4) = 1296
根式运算:
开方 sroot(底数) 例: sroot(16) = 4
三次根号 croot(底数) 例: croot(8) = 2
n次根号 nroot(底数,次数)例: nroot(8,3) = 2
对数运算:
log log(真数,底数) 例: log(4,2) = 2
ln ln(真数) 例: ln(2.72) = 1.0006
取绝对值:
| | abs() : abs-985 = 985
阶乘 :
! fac() 例: fac(5) = 120
进制转换:
十进制转换成其他:
十进制——>二进制 bi() 例: bi(10) = 1010
十进制——>八进制 oc() 例: oc(10) = 12
十进制——>十六进制 he() 例: he(10) = A
其他转换成十进制:
二进制——>十进制 abbi() 例: abbi(10100) = 20
八进制——>十进制 aboc() 例: aboc(1010) = 520
十六进制——>十进制 abhe(" ") 例: abhe("AB") 或者 abhe("ab") = 171

其他参数
π 记作 pi 例: pi / 3 = 1.0471975512..
自然对数 记作 e 例:e * 4 = 10.8731273138..

'''
import math
instruction = '本计算器的操作方法'
print("{:*^40} {}".format(instruction,pre))
print("***************************************")


pi = math.pi
e = math.e

def sqr(x):
result = x * x
return result
def cube(x):
result = x * x * x
return result


def sroot(x):
result = pow(x,0.5)
return result
def croot(x):
result = pow(x,1/3)
return result
def nroot(x,y):
result = pow(x,1/y)
return result


def log(x,y):
result = math.log(x,y)
return result
def ln(x):
result = math.log(x)
return result

def fac(x):
result = 1
for i in range(1,x+1):
result *= i
return result
def bi(a):
result = bin(a)[2:]
return result
def oc(a):
result = oct(a)[2:]
return result
def he(a):
result = hex(a)[2:].upper()
return result

def abbi(a):
result = 0
n = 0
while a//10 != 0 :
result += (a%10) * pow(2,n)
n += 1
a //= 10
result += (a%10) * pow(2,n)
return result
def aboc(a):
result = 0
n = 0
while a//10 != 0 :
result += (a%10) * pow(8,n)
n += 1
a //= 10
result += (a%10) * pow(8,n)
return result
def