日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python GUI計(jì)算器的實(shí)現(xiàn)

瀏覽:32日期:2022-07-08 18:36:15

01 實(shí)現(xiàn)

我們幾乎每個(gè)人都用過計(jì)算器,大家對(duì)于計(jì)算器應(yīng)該都是比較熟悉的,計(jì)算器整體也是比較簡(jiǎn)單的,主要包括:顯示器、鍵盤、運(yùn)算的邏輯處理等,計(jì)算器的圖形界面我們使用 tkinter 庫(kù)實(shí)現(xiàn),下面看一下具體實(shí)現(xiàn)過程。

首先,我們畫一個(gè)主窗口,代碼實(shí)現(xiàn)如下:

# 創(chuàng)建主窗口tk = tkinter.Tk()# 設(shè)置窗口大小和位置tk.geometry(’300x210+500+200’)# 不允許改變窗口大小tk.resizable(False, False)# 設(shè)置窗口標(biāo)題tk.title(’計(jì)算器’)

看一下效果:

python GUI計(jì)算器的實(shí)現(xiàn)

我們接著畫顯示器,代碼實(shí)現(xiàn)如下:

# 自動(dòng)刷新字符串變量,可用 set 和 get 方法進(jìn)行傳值和取值contentVar = tkinter.StringVar(tk, ’’)# 創(chuàng)建單行文本框contentEntry = tkinter.Entry(tk, textvariable=contentVar)# 設(shè)置文本框?yàn)橹蛔xcontentEntry[’state’] = ’readonly’# 設(shè)置文本框坐標(biāo)及寬高contentEntry.place(x=20, y=10, width=260, height=30)

看一下效果:

python GUI計(jì)算器的實(shí)現(xiàn)

再接著畫鍵盤,代碼實(shí)現(xiàn)如下:

# 按鈕顯示內(nèi)容bvalue = [’C’, ’+’, ’-’, ’//’, ’2’, ’0’, ’1’, ’√’, ’3’, ’4’, ’5’, ’*’, ’6’, ’7’, ’8’, ’.’, ’9’, ’/’, ’**’, ’=’]index = 0# 將按鈕進(jìn)行 5x4 放置for row in range(5): for col in range(4): d = bvalue[index] index += 1 btnDigit = tkinter.Button(tk, text=d, command=lambda x=d: onclick(x)) btnDigit.place(x=20 + col * 70, y=50 + row * 30, width=50, height=20)

看一下效果:

python GUI計(jì)算器的實(shí)現(xiàn)

界面畫完了,我們看一下處理運(yùn)算邏輯的代碼,如下所示:

# 點(diǎn)擊事件def onclick(btn): # 運(yùn)算符 operation = (’+’, ’-’, ’*’, ’/’, ’**’, ’//’) # 獲取文本框中的內(nèi)容 content = contentVar.get() # 如果已有內(nèi)容是以小數(shù)點(diǎn)開頭的,在前面加 0 if content.startswith(’.’): content = ’0’ + content # 字符串可以直接用+來增加字符 # 根據(jù)不同的按鈕作出不同的反應(yīng) if btn in ’0123456789’: # 按下 0-9 在 content 中追加 content += btn elif btn == ’.’: # 將 content 從 +-*/ 這些字符的地方分割開來 lastPart = re.split(r’+|-|*|/’, content)[-1] if ’.’ in lastPart: # 信息提示對(duì)話框 tkinter.messagebox.showerror(’錯(cuò)誤’, ’重復(fù)出現(xiàn)的小數(shù)點(diǎn)’) return else: content += btn elif btn == ’C’: # 清除文本框 content = ’’ elif btn == ’=’: try: # 對(duì)輸入的表達(dá)式求值 content = str(eval(content)) except: tkinter.messagebox.showerror(’錯(cuò)誤’, ’表達(dá)式有誤’) return elif btn in operation: if content.endswith(operation): tkinter.messagebox.showerror(’錯(cuò)誤’, ’不允許存在連續(xù)運(yùn)算符’) return content += btn elif btn == ’√’: # 從 . 處分割存入 n,n 是一個(gè)列表 n = content.split(’.’) # 如果列表中所有的都是數(shù)字,就是為了檢查表達(dá)式是不是正確的 if all(map(lambda x: x.isdigit(), n)): content = eval(content) ** 0.5 else: tkinter.messagebox.showerror(’錯(cuò)誤’, ’表達(dá)式錯(cuò)誤’) return # 將結(jié)果顯示到文本框中 contentVar.set(content)

整體實(shí)現(xiàn)完了之后,我們來演示一下,看一下效果:

python GUI計(jì)算器的實(shí)現(xiàn)

是不是有內(nèi)味了。

02 打包

為了更加方便的使用,我們可以將 Python 代碼打包成 exe 文件,打包我們使用 pyinstaller,安裝用 pip install pyinstaller 命令即可。

打包時(shí)我們使用 pyinstaller --onefile --nowindowed counter.py 命令即可,此時(shí)打包生成的文件是使用的默認(rèn)圖標(biāo),如果我們想指定自己的圖標(biāo)可以添加參數(shù) --icon='xxxxxx.ico',打包生成的文件在 dist 目錄。

如下圖所示:

python GUI計(jì)算器的實(shí)現(xiàn)

此時(shí),我們直接運(yùn)行 exe 文件就行了。

03 總結(jié)

本文我們使用 Python 實(shí)現(xiàn)了一個(gè)簡(jiǎn)易的計(jì)算器,大家如果有興趣的話,可以嘗試添加更多的功能以及對(duì)鍵盤進(jìn)行個(gè)性化修改。

以上就是python GUI計(jì)算器的實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于python 計(jì)算器的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产美女高潮在线| 久久福利影视| 国产真实久久| 国产图片一区| 日韩av中文在线观看| 免费视频最近日韩| 水野朝阳av一区二区三区| 播放一区二区| av亚洲一区二区三区| 吉吉日韩欧美| 韩国精品主播一区二区在线观看| 91精品电影| 欧美日韩午夜电影网| 韩日一区二区| 在线视频精品| 美女视频黄 久久| 精品欧美激情在线观看| 日韩免费精品| 美女久久久久久| 香蕉精品999视频一区二区| 国产欧美自拍| 夜夜嗨一区二区| 国产一区二区三区亚洲| 亚洲免费在线| 福利一区二区三区视频在线观看| 蜜臀av免费一区二区三区| 欧美精品影院| 99国产精品| 色婷婷亚洲mv天堂mv在影片| 视频一区二区三区中文字幕| 丁香婷婷久久| 青青草精品视频| 中国女人久久久| 精品欧美日韩精品| 日本aⅴ免费视频一区二区三区| 亚洲夜间福利| 精品欠久久久中文字幕加勒比| 日韩一区精品字幕| 一区二区小说| 日韩精品久久久久久久电影99爱| 国产精品美女久久久久久不卡| 日韩视频一区| 极品日韩av| 国产综合激情| 蜜桃成人av| 五月天久久网站| 日韩国产激情| 亚洲性色av| 国产精品一区二区三区av麻 | 精品国产欧美日韩| 国产精品亚洲综合色区韩国| 青青青国产精品| 日本成人一区二区| 久久激情五月婷婷| 久久国产三级精品| 国产伦精品一区二区三区视频| 日韩高清不卡一区二区| 日韩三区四区| 日本91福利区| 麻豆精品av| 国产自产自拍视频在线观看| 国产美女精品视频免费播放软件| 国产精品欧美在线观看| 国产一区二区色噜噜| 日本少妇一区| 999在线观看精品免费不卡网站| 欧美资源在线| 国产欧美高清视频在线| аⅴ资源天堂资源库在线| 91精品亚洲| 蜜臀av性久久久久蜜臀aⅴ流畅 | 私拍精品福利视频在线一区| 成人欧美一区二区三区的电影| 秋霞影院一区二区三区 | 天堂中文av在线资源库| 欧美1区免费| 亚洲三级观看| 精品亚洲精品| 好吊日精品视频| 国产欧美久久一区二区三区| 波多野结衣久久精品| 亚洲欧美日韩专区| 国产在视频一区二区三区吞精| 五月精品视频| 欧美黑人巨大videos精品| 91九色精品| 91嫩草精品| 91精品二区| 久久香蕉精品香蕉| 一区二区精品| 久久久久欧美精品| 国产乱码精品一区二区三区四区| 蜜桃精品在线| 久久99蜜桃| 中文字幕日韩欧美精品高清在线| 精品亚洲二区| 欧美亚洲自偷自偷| 国产精品婷婷| 四虎影视精品| 精品欧美视频| 国产精品日本一区二区不卡视频| 久久九九国产| 激情国产在线| 精品深夜福利视频| 欧美另类中文字幕 | 国产一区调教| 国产情侣久久| 性欧美精品高清| 蜜桃av.网站在线观看| 国产乱码精品一区二区三区亚洲人 | 伊人久久亚洲美女图片| 日韩一区二区中文| 人在线成免费视频| 一区二区精品伦理...| 国内精品亚洲| 91免费精品| 久久久久久自在自线| 国产一区二区精品久| 麻豆精品99| 国产伦理久久久久久妇女| 视频一区日韩精品| 亚洲精品欧美| 亚洲精品激情| 日韩精品成人在线观看| 日本特黄久久久高潮| 91亚洲无吗| 国产一区不卡| 日韩中文在线电影| 欧美成人国产| 亚洲精选91| 久久精品午夜| 久久精品亚洲欧美日韩精品中文字幕| 精品捆绑调教一区二区三区| 久久中文字幕av| 日韩视频免费| 日韩高清欧美激情| 国产一区二区三区亚洲综合| 亚洲成av在线| 伊人精品久久| 国产999精品在线观看| 中文日韩在线| 欧美激情视频一区二区三区免费| 黄色在线网站噜噜噜| 亚洲一区二区免费看| 国产日韩欧美一区二区三区| sm捆绑调教国产免费网站在线观看| 在线日韩电影| 久久国产乱子精品免费女| 亚洲电影有码| 天堂精品久久久久| 日韩.com| 日韩av不卡一区二区| 欧美成a人免费观看久久| 少妇精品久久久一区二区三区| 粉嫩av一区二区三区四区五区 | 男女激情视频一区| 你懂的国产精品永久在线| 欧美一级精品| 久久99久久人婷婷精品综合| 91精品1区| 国产不卡人人| 日韩激情网站| 亚洲激情中文| av日韩中文| 精品伊人久久| 欧美日韩伊人| 免费观看久久久4p| 国产精品色网| 日韩欧美一区二区三区在线观看 | 美女久久一区| 久久国产电影| 久久亚洲精品中文字幕蜜潮电影| 日韩在线二区| 蜜臀av免费一区二区三区| 日韩欧美不卡| 成人日韩在线观看| 99久久夜色精品国产亚洲1000部| 国产精品久久久久av电视剧| 国产一区二区三区日韩精品| 国产精品一二| 国产精品99久久免费观看| 国产欧美日韩精品一区二区免费| 亚洲ww精品| 国产精品亚洲四区在线观看| 国产美女精品| 久久国内精品视频| 麻豆久久一区| 国产精品nxnn| 国产精品www.| 激情不卡一区二区三区视频在线| 精品一区二区三区四区五区| 中文字幕在线看片| 亚洲高清不卡| 奇米狠狠一区二区三区| 国产一区二区视频在线看| 亚洲福利精品| 国产精选一区| 999国产精品视频| 婷婷精品久久久久久久久久不卡| 日韩不卡一区二区三区|