实验二 计算器设计
课程:《Python程序设计》
班级: 1813
姓名: 曾令杰
学号:20181316
实验教师:王志强
实验日期:2021年5月6日
必修/选修: 公选课
1.实验内容
编写一个功能尽可能强大的计算器
代码部分:
from tkinter import * import math def click(num): global op op = op + str(num) iptext.set(op) def evaluate(): global op output = str(eval(op)) iptext.set(output) def clearDisplay(): global op op = "" iptext.set(op) def sc(a): global op op=int(op) if a=='sin': op=math.sin(op) else: op=math.cos(op) iptext.set(op) calc = Tk() calc.title() op="" iptext=StringVar() w = Entry(calc, font=('large,_font', 15, 'bold'), fg='red', bd=5,justify="center", insertwidth=4, textvariable=iptext).grid( columnspan=10) bt7 = Button(calc, font=('arial', 15, 'bold'), command=lambda: click(7), bg="lavender", text="7", bd=5, padx=15, pady=10).grid(row=1, column=0) bt8 = Button(calc, font=('arial', 15, 'bold'), command=lambda: click(8), bg="lavender", text="8", bd=5, padx=15, pady=10).grid(row=1, column=1) bt9 = Button(calc, font=('arial', 15, 'bold'), command=lambda: click(9), bg="lavender", text="9", bd=5, padx=15, pady=10).grid(row=1, column=2) add = Button(calc, font=('arial', 15, 'bold'), command=lambda: click('+'), bg="lavender", text="+", bd=5, padx=15, pady=10).grid(row=1, column=3) mod = Button(calc, font=('arial', 15, 'bold'), command=lambda: click('%'), bg="lavender", text="%", bd=5, padx=15, pady=10).grid(row=1, column=4) bt4 = Button(calc, font=('arial', 15, 'bold'), command=lambda: click(4), bg="lavender", text="4", bd=5, padx=15, pady=10).grid(row=2, column=0) bt5 = Button(calc, font=('arial', 15, 'bold'), command=lambda: click(5), bg="lavender", text="5", bd=5, padx=15, pady=10).grid(row=2, column=1) bt6 = Button(calc, font=('arial', 15, 'bold'), command=lambda: click(6), bg="lavender", text="6", bd=5, padx=15, pady=10).grid(row=2, column=2) sub = Button(calc, font=('arial', 15, 'bold'), command=lambda: click('-'), bg="lavender", text="-", bd=5, padx=15, pady=10).grid(row=2, column=3) factorial = Button(calc, font=('arial', 15, 'bold'), command=lambda: click('**'), bg="lavender", text="^", bd=5, padx=15, pady=10).grid(row=2, column=4) bt1 = Button(calc, font=('arial', 15, 'bold'), command=lambda: click(1), bg="lavender", text="1", bd=5, padx=15, pady=10).grid(row=3, column=0) bt2 = Button(calc, font=('arial', 15, 'bold'), command=lambda: click(2), bg="lavender", text="2", bd=5, padx=15, pady=10).grid(row=3, column=1) bt3 = Button(calc, font=('arial', 15, 'bold'), command=lambda: click(3), bg="lavender", text="3", bd=5, padx=15, pady=10).grid(row=3, column=2) mul = Button(calc, font=('arial', 15, 'bold'), command=lambda: click('*'), bg="lavender", text="*", bd=5, padx=15, pady=10).grid(row=3, column=3) sin = Button(calc, font=('arial', 15, 'bold'), command=lambda: sc('sin'), bg="lavender", text="sn", bd=5, padx=15, pady=10).grid(row=3, column=4) bt0 = Button(calc, font=('arial', 15, 'bold'), command=lambda: click(0), bg="lavender", text="0", bd=5, padx=15, pady=10).grid(row=4, column=0) btC = Button(calc, font=('arial', 15, 'bold'), command=clearDisplay, bg="lavender", text="C", bd=5, padx=15, pady=10).grid(row=4, column=1) eql = Button(calc, font=('arial', 15, 'bold'), command=evaluate, bg="lavender", text="=", bd=5, padx=15, pady=10).grid( row=4, column=2) div = Button(calc, font=('arial', 15, 'bold'), command=lambda: click('/'), bg="lavender", text="/", bd=5, padx=15, pady=10).grid(row=4, column=3) cos = Button(calc, font=('arial', 15, 'bold'), command=lambda: sc('cos'), bg="lavender", text="cs", bd=5, padx=15, pady=10).grid(row=4, column=4) calc.mainloop()
结果示例图:
代码参考了网上的,自己在网上代码的基础上增加了%,^ ,sin,cos的功能,下面是各个运算功能的截图:
1.加
2.减
3.乘
4.除
5.模
6.次方
7.sin
运算的为sin3
8.cos
运行的为cos3
2.实验困难
上述实现这个可视化模块一开始自己没有搞清楚是如何实现的,后来经过查找资料了解了tkinter库的用法,另外在实现sin和cos时候自己也是调用了math库。
3.实验感受
感觉越学不会的就越多!!!哈哈哈!!!
4.参考资料链接
https://www.jb51.net/article/133969.htm