日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python带界面的计算器

發布時間:2024/1/17 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python带界面的计算器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#python中的import語句是用來導入模塊的,在python模塊庫中有著大量的模塊可供使用,要想使用這些文件需要用import語句把指定模塊導入到當前程序中。 import re#處理字符串的模塊,如查找特定字符,刪除特定字符,字符串分割等 import tkinter#Tkinter模塊("Tk 接口")是Python的標準Tk GUI工具包的接口,位Python的內置模塊,直接import tkinter即可使用。 import tkinter.messagebox#調用tkinter模塊中的messagebox函數,這個是消息框,對話框的關鍵,會彈出一個小框#按鈕操作,點擊按鈕后需要做的處理 def buttonClik(btn):content=contentVar.get()#獲取文本框中的內容#如果已有內容是以小數點開頭的,在前面加0if content.startswith('.'):content='0'+content#字符串可以直接用+來增加字符#根據不同的按鈕作出不同的反應if btn in '0123456789':content+=btn#0-9中哪個鍵按下了,就在content字符串中增添elif btn=='.':#re.split,支持正則及多個字符切割lastPart=re.split(r'\+|-|\*|/',content)[-1]#將content從+-*/這些字符的地方分割開來,[-1]表示獲取最后一個字符if '.'in lastPart:tkinter.messagebox.showerror('錯誤','重復出現的小數點')#出現對話框,并提示信息returnelse:content+=btnelif btn=='C':content=''#清除文本框elif btn=='=':try:#對輸入的表達式求值content=str(eval(content))#調用函數eval,用字符串計算出結果except:tkinter.messagebox.showerror('錯誤','表達式有誤')returnelif btn in operators:if content.endswith(operators):#如果content中最后出現的+-*/tkinter.messagebox.showerror('錯誤','不允許存在連續運算符')returncontent+=btnelif btn=='Sqrt':n=content.split('.')#從.處分割存入n,n是一個列表if all(map(lambda x:x.isdigit(),n)):#如果列表中所有的都是數字,就是為了檢查表達式是不是正確的content=eval(content)**0.5else:tkinter.messagebox.showerror('錯誤','表達式錯誤')returncontentVar.set(content)#將結果顯示到文本框中root=tkinter.Tk()#生成主窗口,用root表示,后面就在root操作 #設置窗口大小和位置可直接聯系客服QQ交代需求:953586085 歡迎光臨程序代寫小店https://item.taobao.com/item.htm?spm=a230r.1.14.59.255028c3ALNkZ0&id=586797758241&ns=1&abbucket=15#detail root.geometry('300x270+400+100')#指定主框體大小 #不允許改變窗口大小 root.resizable(False,False)#框體大小可調性,分別表示x,y方向的可變性; #設置窗口標題 root.title('計算器')#文本框和按鈕都是tkinter中的組件 #Entry    文本框(單行); #Button   按鈕; #放置用來顯示信息的文本框,設置為只讀 #tkinter.StringVar 能自動刷新的字符串變量,可用set和get方法進行傳值和取值 contentVar=tkinter.StringVar(root,'') contentEntry=tkinter.Entry(root,textvariable=contentVar)#括號里面,可見第一個都是root,即表示都是以root為主界面的,將文本框中的內容存在contentVar中 contentEntry['state']='readonly'#文本框只能讀,不能寫 contentEntry.place(x=10,y=10,width=280,height=20)#文本框在root主界面的xy坐標位置,以及文本框自生的寬和高 #x:     組件左上角的x坐標; #y:    組件右上角的y坐標; #放置清除按鈕和等號按鈕 btnClear=tkinter.Button(root,text='C',bg = 'red',command=lambda:buttonClik('C'))#在root主界面中放置按鈕,按鈕上顯示C,紅色,點擊按鈕后進入buttonClik回調函數做進一步的處理,注意傳入了參數‘C’,這樣就能分清是哪個按鈕按下了 #下面的內容和上面的模式都是一樣的 btnClear.place(x=40,y=40,width=80,height=20) btnCompute=tkinter.Button(root,text='=',bg = 'yellow',command=lambda :buttonClik('=')) btnCompute.place(x=170,y=40,width=80,height=20)#放置10個數字、小數點和計算平方根的按鈕 digits=list('0123456789.')+['Sqrt']#序列list是Python中最基本的數據結構。序列中的每個元素都分配一個數字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。 index=0 #用循環的方式將上面數字、小數點、平方根這12個按鈕分成四行三列進行放置 for row in range(4):for col in range(3):d=digits[index]#按索引從list中取值,和c語言中的數組類似index+=1#索引號遞增btnDigit=tkinter.Button(root,text=d,command=lambda x=d:buttonClik(x))#和上面的是類似的btnDigit.place(x=20+col*70,y=80+row*50,width=50,height=20)#很顯然,每次放一個按鈕的位置是不一樣的,但是它們之間的關系時確定的 #放置運算符按鈕 operators=('+','-','*','/','**','//')#Python的元組與列表類似,不同之處在于元組的元素不能修改。 #元組使用小括號,列表使用方括號。 #enumerate() 函數用于將一個可遍歷的數據對象(如列表、元組或字符串)組合為一個索引序列,同時列出數據和數據下標,一般用在 for 循環當中。 for index,operator in enumerate(operators):btnOperator=tkinter.Button(root,text=operator,bg = 'orange',command=lambda x=operator:buttonClik(x))#創建的過程和上面類似btnOperator.place(x=230,y=80+index*30,width=50,height=20)root.mainloop()#進入消息循環(必需組件)

  

原文:https://blog.csdn.net/qq_24624539/article/details/81461690

轉載于:https://www.cnblogs.com/qbdj/p/11018130.html

總結

以上是生活随笔為你收集整理的python带界面的计算器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。