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实现一个高颜值计算器

posted @ 2022-04-03 13:16  皓亦寒  阅读(156)  评论(0编辑  收藏  举报