20212329 实验二《Python程序设计》实验二报告
20212329实验二《Python程序设计》实验报告
课程:《Python程序设计》
班级: 2123
姓名: 陈鹏宇
学号:20212329
实验教师:王志强
实验日期:2022年4月2日
必修/选修: 公选课
1.实验内容
升级基于thinker的计算机,并相应增加幂、地板除法、取余、复数计算等功能。
2. 实验过程及结果
(1)代码编译
(2)检验成果
3. 实验过程中遇到的问题和解决过程
- 问题1:设计按钮中的字符时一个按钮仅录入一个字符
- 问题1解决方案:单独将此按钮提出编译
其他(感悟、思考等)
界面仍需美化,最大化时仅放大界面,按钮尺寸未改变,提前将按钮尺寸放大便显得字符过小,调整字符尺寸使得代码长度翻一番,此前设计计算机想加入虚数计算时百般难破,设计时复杂度飙升,导入数学库仍然未实现三角函数,之后会持续改进。
代码如下:
from tkinter import *
from random import randint
from os import startfile
import math
class Calculator(Frame):
def __init__(self):
Frame.__init__(self)
self.pack(expand=YES, fill=BOTH)
self.master.title('计算器3.1版')
self.master.rowconfigure(0, weight=1)
self.master.columnconfigure(0, weight=1)
self.grid(sticky=W + E + N + S)
display = StringVar()
entry = Entry(self, relief=SUNKEN, textvariable=display)
entry.grid(row=0, column=0, columnspan=5, sticky=W + E + N + S)
grid = '7', '8', '9', '+', '-', '4', '5', '6', '*', '/', '1', '2', '3', '(', ')', '0', '.', '%', 'j', '=', '**', '//', ' ', ' ', ' '
for index, textChar in enumerate(grid):
a = Button(self, text=textChar, width=10, height=4,
command=lambda text=textChar: display.set(display.get() + text))
a.grid(row=1 + index // 5, column=index % 5, )
button_text = a.cget("text")
if button_text == '=':
a.config(command=lambda: display.set(eval(display.get())))
b = Button(self, text="CE", height=5, width=30, command=lambda: display.set(""))
b.grid(row=7, column=0, columnspan=5, sticky=W + E + N + S)
if __name__ == '__main__':
Calculator().mainloop()
参考资料
Python thinker实现计算机
Python的GUI编程(二)Button(按钮)
Python:【小程序】基于tkinter库制作简易的计算器
python使用tkinter实现一个高颜值计算器
本文来自博客园,作者:{HYHr},转载请注明原文链接:https://www.cnblogs.com/dishearten/p/16083876.html