Pythons實現乙個計算器

2021-10-23 10:45:52 字數 2442 閱讀 1537

# -*- coding:utf-8 -*-

from tkinter import *

def calculate():

result = eval (equ.get())

equ.set(equ.get()+"=\n"+str(result))

def show(buttonstring):

content = equ.get()

if content =="0":

content = ""

equ.set(content + buttonstring)

def backspace():

equ.set(str(equ.get()[:-1]))

def clear():

equ.set("0")

root = tk()

root.title("計算器")

equ = strin**ar()

equ.set("0")

#設計顯示區

label = label(root,width=25,height=2,relief="raised",anchor=se,textvariable=equ)

label.grid(row=0,column=0,columnspan=4,padx=5,pady=5)

#清除顯示區按鈕

clearbutton = button (root, text="c",fg="blue",width=5,command=clear)

clearbutton.grid(row=1,column=0)

#以下是row1的其他按鈕

button(root,text="del",width=5,command=backspace).grid(row=1,column=1)

button(root,text="%",width=5,command=lambda:show("%")).grid(row=1,column=2)

button(root,text="/",width=5,command=lambda:show("/")).grid(row=1,column=3)

#以下是row2的其他按鈕

button(root,text="7",width=5,command=lambda:show("7")).grid(row=2,column=0)

button(root,text="8",width=5,command=lambda:show("8")).grid(row=2,column=1)

button(root,text="9",width=5,command=lambda:show("9")).grid(row=2,column=2)

button(root,text="*",width=5,command=lambda:show("*")).grid(row=2,column=3)

#以下是row3的其他按鈕

button(root,text="4",width=5,command=lambda:show("4")).grid(row=3,column=0)

button(root,text="5",width=5,command=lambda:show("5")).grid(row=3,column=1)

button(root,text="6",width=5,command=lambda:show("6")).grid(row=3,column=2)

button(root,text="-",width=5,command=lambda:show("-")).grid(row=3,column=3)

#以下是row4的其他按鈕

button(root,text="1",width=5,command=lambda:show("1")).grid(row=4,column=0)

button(root,text="2",width=5,command=lambda:show("2")).grid(row=4,column=1)

button(root,text="3",width=5,command=lambda:show("3")).grid(row=4,column=2)

button(root,text="+",width=5,command=lambda:show("+")).grid(row=4,column=3)

#以下是row5的其他按鈕

button(root,text="0",width=12,command=lambda:show("0")).grid(row=5,column=0,columnspan=2)

button(root,text=".",width=5,command=lambda:show(".")).grid(row=5,column=2)

button(root,text="=",width=5,bg="yellow",command=lambda:calculate()).grid(row=5,column=3)

root.mainloop()

實現乙個計算器

一直以來,我都想寫一門語言,但無從下手。我找到了很多編譯原理的教程,但始終覺得內容晦澀,理解不了,所以先嘗試寫乙個簡單的,比如 計算器。網上有很多關於計算器的實現,但大多需要有編譯原理的基礎,對於我這種小白實在難以理解。我決定採用暴力模擬的方式,需要用正規表示式,但我不想自己實現,所以用js。計算器...

實現乙個計算器

一直以來,我都想寫一門語言,但無從下手。我找到了很多編譯原理的教程,但始終覺得內容晦澀,理解不了,所以先嘗試寫乙個簡單的,比如 計算器。網上有很多關於計算器的實現,但大多需要有編譯原理的基礎,對於我這種小白實在難以理解。我決定採用暴力模擬的方式,需要用正規表示式,但我不想自己實現,所以用js。計算器...

堆疊實現乙個整型計算器

計算器特性 支援整型運算 能夠處理運算子和運算元間的空格,支援括號 實現思路 利用乙個運算元堆疊dgt和乙個運算子堆疊ops實現 1 從左至右掃瞄運算表示式輸入,若為運算元則直接壓入dgt堆疊 2 若為運算子則判斷ops中是否已經存在運算子,不存在則直接壓入,存在則與棧頂運算子比較優先順序,優先順序...