2902480848sy

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


课程:《Python程序设计》
班级: 1913
姓名: 施羿
学号:20191325
实验教师:王志强
实验日期:2021年5月7日
必修/选修: 公选课

## 1.实验内容

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

  • 考核基本语法、判定语句、循环语句、逻辑运算等知识点


## 2. 实验过程及结果

"""
作者:施羿
文件名:计算器
时间:2021年5月7日
"""
import math


# 表达式运算
def test(date):
result = eval(date) #eval用于执行字符串表达式,返回值
return result


# 加法
def add(a, b):
return a + b


# 减法
def minus(a, b):
return a - b


# 乘法
def mul(a, b):
return a * b


# 除法
def div(a, b):
if b == 0:
print("Error")
else:
return a / b


# 求模
def mod(a, b):
return a % b


# 幂运算
def power(a, b):
return a ** b


while True:
print("计算器")
i = int(input("基本运算输1,表达式运算输2,高级功能输3,输0退出\n请输入:"))
if i == 1:
print("1:加法 2:减法 3:乘法 4:除法 5:求模 6:幂运算\n")
s = int(input("请输入运算方法:"))
n1 = float(input("请输入第一个数:"))
n2 = float(input("请输入第二个数:"))
print("结果为:")
if s == 1:
print(add(n1, n2))
if s == 2:
print(minus(n1, n2))
if s == 3:
print(mul(n1, n2))
if s == 4:
print(div(n1, n2))
if s == 5:
print(mod(n1, n2))
if s == 6:
print(power(n1, n2))
elif i == 2:
print("支持加减乘除和求模(%)与幂函数(**)\n示例:3+4-(3-2)**2")
m = input("请输入表达式:")
print("结果为:", test(m))
elif i == 3:
print("1:对数函数 2:开方 3:向下取整 4:向上取整 5:弧度转换角度 6:角度转换弧度 7:正弦函数 8:余弦函数 9:正切函数 10:最大公约数")
s = int(input("请输入运算方法:"))
if s == 1:
print("对数运算")
n3 = float(input("请输入运算数:"))
n4 = float(input("请输入底数:"))
print("结果为:", math.log(n3, n4))
elif s == 10:
print("最大公约数")
n5 = float(input("请输入第一个运算数:"))
n6 = float(input("请输入第二个运算数:"))
print("结果为:", math.gcd(n5, n6))
elif 2 <= s <= 9:
n7 = float(input("请输入运算数(三角函数仅输入弧度制pi前的系数):"))
if s == 2:
print("开方运算\n结果为:", math.sqrt(n7))
if s == 3:
print("向下取整\n结果为:", math.trunc(n7))
if s == 4:
print("向上取整\n结果为:", math.ceil(n7))
if s == 5:
print("弧度转换角度\n结果为:", math.degrees(n7))
if s == 6:
print("角度转换弧度\n结果为:", math.radians(n7))
if s == 7:
print("正弦函数\n结果为:", math.sin(math.pi*n7))
if s == 8:
print("余弦函数\n结果为:", math.cos(math.pi*n7))
if s == 9:
print("正切函数\n结果为:", math.tan(math.pi*n7))
elif i == 0:
break
entry = ttk.Entry(win, justify="right", font=1)
entry.grid(row=0, column=0, columnspan=6, padx=20, pady=5)
b0 = ttk.Button(win, text=\'0\', command=lambda: get(entry, \'0\'))
b0.grid(column=1, row=4)
b1 = ttk.Button(win, text=\'1\', command=lambda: get(entry, \'1\'))
b1.grid(column=0, row=3)
b2 = ttk.Button(win, text=\'2\', command=lambda: get(entry, \'2\'))
b2.grid(column=1, row=3)
b3 = ttk.Button(win, text=\'3\', command=lambda: get(entry, \'3\'))
b3.grid(column=2, row=3)
b4 = ttk.Button(win, text=\'4\', command=lambda: get(entry, \'4\'))
b4.grid(column=0, row=2)
b5 = ttk.Button(win, text=\'5\', command=lambda: get(entry, \'5\'))
b5.grid(column=1, row=2)
b6 = ttk.Button(win, text=\'6\', command=lambda: get(entry, \'6\'))
b6.grid(column=2, row=2)
b7 = ttk.Button(win, text=\'7\', command=lambda: get(entry, \'7\'))
b7.grid(column=0, row=1)
b8 = ttk.Button(win, text=\'8\', command=lambda: get(entry, \'8\'))
b8.grid(column=1, row=1)
b9 = ttk.Button(win, text=\'9\', command=lambda: get(entry, \'9\'))
b9.grid(column=2, row=1)
bb0 = ttk.Button(win, text=\'.\', command=lambda: get(entry, \'.\'))
bb0.grid(column=2, row=4)
bb1 = ttk.Button(win, text=\'+\', command=lambda: get(entry, \'+\'))
bb1.grid(column=3, row=1)
bb2 = ttk.Button(win, text=\'-\', command=lambda: get(entry, \'-\'))
bb2.grid(column=3, row=2)
bb3 = ttk.Button(win, text=\'*\', command=lambda: get(entry, \'*\'))
bb3.grid(column=3, row=3)
bb4 = ttk.Button(win, text=\'/\', command=lambda: get(entry, \'/\'))
bb4.grid(column=3, row=4)
bb5 = ttk.Button(win, text=\'->\', command=lambda: back(entry))
bb5.grid(column=0, row=4)
bb6 = ttk.Button(win, text=\'x^n\', command=lambda: get(entry, \'**\'))
bb6.grid(column=5, row=1)
bb7 = ttk.Button(win, text=\'mod\', command=lambda: get(entry, \'%\'))
bb7.grid(column=5, row=2)
bb8 = ttk.Button(win, text=\'clear\', command=lambda: clear(entry))
bb8.grid(column=5, row=3)
bb9 = ttk.Button(win, text=\'=\', command=lambda: calculate(entry))
bb9.grid(column=5, row=4, )

win.mainloop()

 

 

 

 

 

 



## 3. 实验过程中遇到的问题和解决过程
加入新的,未使用过的正余弦函数时,对函数不理解,通过查阅资料了解了用法,并借助网上的源码,对高级功能进行了完善。

## 其他(感悟、思考等)

通过基本语法、判定语句、循环语句、逻辑运算等知识,可以完成简易计算器,在网上,很多大佬制作了有界面的计算器,需要继续学习python,学会更高的技巧。

## 参考资料

https://blog.csdn.net/cumudi0723/article/details/107803663

分类:

技术点:

相关文章: