20212329 實驗一《Python程式設計》實驗二報告
阿新 • • 發佈:2022-04-03
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實現一個高顏值計算器