Python 實現簡易計算器功能

2021-09-11 04:35:43 字數 1988 閱讀 7407

效果圖如下:

#建立橫條型框架

def frame(root, side):

w = frame(root) #在螢幕上建立一塊矩形區域

w.pack(side = side, expand = yes, fill = both)

#expand = 1時,使能fill屬性;=0時,關閉fill屬性

#fill = both,當gui窗體大小發生變化時,widget在x、y兩方向跟隨gui窗體變化

return w

#建立按鈕

def button(root, side, text, command = none):

w = button(root, text = text, command = command)

w.pack(side = side, expand = yes, fill = both)

return w

#繼承了frame類,初始化程式介面的布局

class calculator(frame):

def __init__(self):

frame.__init__(self)

self.pack(expand = yes, fill = both)

self.master.title('計算器')

display = strin**ar()

#如果設定乙個textvariable屬性為乙個strin**ar(intvar, doublevar)物件。

#當這個物件的值被重新設定的時候,元件上的顯示文字就會自動變成新的值。

#新增輸入框

entry(self, relief = sunken,

textvariable = display).pack(side = top, expand = yes,

fill = both)

#新增橫條型框架以及裡面的按鈕

for key in('123', '456', '789', '-0.'):

keyf = frame(self, top)

for char in key:

button(keyf, left, char, lambda w = display, c = char:w.set(w.get() + c))

#新增操作符按鈕

opsf = frame(self, top)

for char in '+-*/=':

if char == '=':

btn = button(opsf, left, char)

btn.bind('', lambda e, s = self, w = display:s.calc(w), '+')

else:

btn = button(opsf, left, char, lambda w = display, s = '%s' %char:w.set(w.get() + s))

#新增清除按鈕

clearf = frame(self, bottom)

button(clearf, left, '清除', lambda w = display:w.set(''))

#呼叫eval函式計算表示式的值

def calc(self, display):

try:

display.set(eval(display.get()))

except:

display.set("error")

#程式的入口

if __name__ == '__main__':

print('ok')

calculator().mainloop() #一旦檢測到事件,就重新整理元件

Python實現簡易計算器(巨簡易)

while true p input 是否繼續使用計算器?y n if p y a float input 輸入數字1 b float input 輸入數字2 c str input 輸入運算法則 if c z a b print s 與 s 的和為 s a,b,z elif c z a b pri...

實現簡易計算器

python 剛學python 老師帶著寫了乙個計算器。話不多說直接上 from tkinter import 匯入模組 top tk 設定視窗物件 top.title 計算器 設定視窗標題 v strin ar 接受使用者輸入的字元 v.set 0 設定字元預設值 isopera false 是否...

計算器簡易實現

testdlg.cpp 實現檔案 include stdafx.h include include test.h include testdlg.h include afxdialogex.h ifdef debug define new debug new endif define tag add...