1. 程式人生 > 其它 >用python寫個計算器

用python寫個計算器

tkinter圖形介面

  • Tkinter 是 Python 的標準 GUI 庫。Python 使用 Tkinter 可以快速的建立 GUI 應用程式。由於 Tkinter 是內建到 python 的安裝包中、只要安裝好 Python 之後就能 import Tkinter 庫、而且 IDLE 也是用 Tkinter 編寫而成、對於簡單的圖形介面 Tkinter 還是能應付自如。
# 匯入tkineter庫
import tkinter

# 獲取一個視窗
window = tkinter.Tk()
# 設定標題
window.title('subeiLY的計算器')
# 設定視窗大小
window.geometry('300x200')

# 輸入方法
def add(n):
    # 獲取到n1文字框的值
    n1 = inp.get()
    # 清空文字框
    inp.delete(0,len(n1))
    # 插入原來的加上新輸入引數n
    inp.insert(0,n1+str(n))

# 執行計算方法
def calc():
    n1 = inp.get()  
    inp.delete(0,len(n1))
    # 把文字框的字串用eval當代碼執行一次,再插入到文字框
    inp.insert(0,str(eval(n1)))

# 清空文字框
def clear():
    n1 = inp.get()  
    inp.delete(0,len(n1))

# 刪除最後一個字元
def back():
    n1 = inp.get()  
    inp.delete(len(n1)-1,len(n1))

# 計算絕對值
def ab():
    n1 = inp.get()  
    inp.delete(0,len(n1))
    inp.insert(0,str(eval(n1)*-1))

# 設定一個文字框
inp = tkinter.Entry(window, width=25)
# 在第0行,第0個,合併5列
inp.grid(row=0,column=0,columnspan=5)


# 用for迴圈 建立 123 456 789 9個按鈕
for i in range(0,3):
    for j in range(1,4):
        n = j+i*3
        btn=tkinter.Button(window, text=str(j+i*3),width=5, command=lambda n=n:add(n))
        btn.grid(row=i+2,column=j-1)
# 刪除按鈕(視窗,寬度,文字,執行命令).grid(1行,0列)
tkinter.Button(window,width=5, text="C", command=clear).grid(row=1,column=0)
tkinter.Button(window,width=5, text="←", command=back).grid(row=1,column=1)
tkinter.Button(window,width=5, text="+/-", command=ab).grid(row=1,column=2)

# 刪除按鈕(視窗,寬度,文字,背景色,文字顏色,執行命令並傳入引數).grid(1行,4列)
tkinter.Button(window,width=5, text="+",bg="#f70",fg="#fff",command=lambda:add("+")).grid(row=1,column=4)
tkinter.Button(window,width=5, text="-", bg="#f70",fg="#fff",command=lambda:add("-")).grid(row=2,column=4)
tkinter.Button(window,width=5, text="×",bg="#f70",fg="#fff",command=lambda:add("*")).grid(row=3,column=4)
tkinter.Button(window,width=5, text="÷",bg="#f70",fg="#fff",command=lambda:add("/")).grid(row=4,column=4)
tkinter.Button(window,width=12,text="0", command=lambda:add("0")).grid(row=5,column=0,columnspan=2)
tkinter.Button(window,width=5,text="=", bg="#f70",fg="#fff",command=calc).grid(row=5,column=4)
tkinter.Button(window,width=5, text=".", command=lambda:add(".")).grid(row=5,column=2)

# 進入訊息迴圈
window.mainloop()

注意

  • eval 把字串當python程式碼執行
  • len() 方法計算字串長度
  • inp.get()獲取到文字框的值
  • inp.delete(start,end)刪除文字框的字元從start個刪除到end個
  • inp.insert(start,str)插入文字框字元 從start插入str字元
歡迎查閱