<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了python實現簡單計算器的具體程式碼,供大家參考,具體內容如下
今天學習到python中介面設計部分,常用的幾種圖形化介面庫有:Jython、wxPython和tkinter。
主要介紹tkinter模組,tkinter模組(tk介面)是Python的標準tk GUI工具包的介面。tk和tkinter可以在大多數的UNIX平臺下使用,同樣可以應用在Windows和Macintosh系統裡。Tk8.0的後續版本可以實現本地視窗風格,並良好地執行在絕大多數平臺中。
下面使用tkinter設計完成計算器功能。
(1)首先呈現一下計算器初始介面:
(2)簡單說明:已經實現計算器的基本功能
(3)主要程式碼說明:
①匯入包
import tkinter from tkinter import * import re import tkinter.messagebox
②介面佈局設定
# 建立主視窗 root = Tk() # 設定視窗大小和位置 root.title("---計算器---") root.geometry("320x210+500+200") # 自動重新整理字串變數,可用 set 和 get 方法進行傳值和取值 contentVar = tkinter.StringVar(root,'') # 建立單行文字方塊 contentEntry = tkinter.Entry(root, textvariable=contentVar) # 設定文字方塊座標及寬高 contentEntry.place(x=20, y=10, width=260, height=30) # 按鈕顯示內容 bvalue = ['CLC', '+', '-', '//', '0', '1', '2', '√', '3', '4', '5', '*', '6', '7', '8', '.', '9', '/', '**', '='] index = 0 # 將按鈕進行 5x4 放置 for row in range(5): for col in range(4): d = bvalue[index] index += 1 btnDigit = tkinter.Button(root, text=d, command=lambda x=d:onclick(x)) btnDigit.place(x=20 + col * 70, y=50 + row * 30, width=50, height=20) root.mainloop()
③按鈕事件的響應函數(可在評論區進行交流)
# 點選事件 def onclick(btn): # 運運算元 operation = ('+', '-', '*', '/', '**', '//') # 獲取文字方塊中的內容 content = contentVar.get() # 如果已有內容是以小數點開頭的,在前面加 0 if content.startswith('.'): content = '0' + content # 字串可以直接用+來增加字元 # 根據不同的按鈕作出不同的反應 if btn in '0123456789': # 按下 0-9 在 content 中追加 content += btn elif btn == '.': # 將 content 從 +-*/ 這些字元的地方分割開來 lastPart = re.split(r'+|-|*|/', content)[-1] if '.' in lastPart: # 資訊提示對話方塊 tkinter.messagebox.showerror('錯誤', '重複出現的小數點') return else: content += btn elif btn == 'CLC': # 清除文字方塊 content = '' elif btn == '=': try: # 對輸入的表示式求值 content = str(eval(content)) except: tkinter.messagebox.showerror('錯誤', '表示式有誤') return elif btn in operation: if content.endswith(operation): tkinter.messagebox.showerror('錯誤', '不允許存在連續運運算元') return content += btn elif btn == '√': # 從 . 處分割存入 n,n 是一個列表 n = content.split('.') # 如果列表中所有的都是數位,就是為了檢查表示式是不是正確的 if all(map(lambda x: x.isdigit(), n)): content = eval(content) ** 0.5 else: tkinter.messagebox.showerror('錯誤', '表示式錯誤') return
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45