1. 程式人生 > 其它 >20212329 實驗一《Python程式設計》實驗二報告

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實現一個高顏值計算器