Skip to content

Instantly share code, notes, and snippets.

@renyuanL
Created July 13, 2014 15:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save renyuanL/b71afbd445611f2703bb to your computer and use it in GitHub Desktop.
Save renyuanL/b71afbd445611f2703bb to your computer and use it in GitHub Desktop.
ryCalculator4_final.py
'''
ryCalculator4_final.py
改自 myCalculator4_final.py
呂仁園, 2014/07/13
'''
from math import *
from random import *
from tkinter import *
class 窗類(Tk):
def __init__(我, *x, **y):
Tk.__init__(我, *x, **y)
def 標題(我, *x, **y):
我.title(*x, **y)
def 主迴圈(我, *x, **y):
我.mainloop()
class 框類(Frame):
def __init__(我, *x, **y):
Frame.__init__(我,*x, **y)
def 格位(我,*x, **y):
我.grid(*x, **y)
class 鈕類(Button):
def __init__(我, *x, **y):
Button.__init__(我,*x, **y)
def 格位(我,*x, **y):
我.grid(*x, **y)
class 盒類(Entry):
def __init__(我, *x, **y):
Entry.__init__(我,*x, **y)
def 格位(我,*x, **y):
我.grid(*x, **y)
class 標類(Label):
def __init__(我, *x, **y):
Label.__init__(我,*x, **y)
def 格位(我,*x, **y):
我.grid(*x, **y)
class 文類(Text):
def __init__(我, *x, **y):
Text.__init__(我,*x, **y)
def 格位(我,*x, **y):
我.grid(*x, **y)
計數器=0
def 點擊(鈕):
global 計數器
if 鈕 == '計算':
try:
算式= 出入盒.get()
計算結果= eval(算式)
轉成文字= str(計算結果)
出入盒.insert(END, " 計算結果為: " + 轉成文字)
except:
出入盒.insert(END, " --> 輸入不合語法!")
elif 鈕 == "清除":
文.insert(END, '[%d:] %s\n'%(計數器, 出入盒.get()))
出入盒.delete(0, END)
計數器+=1
else:
出入盒.insert(END, 鈕)
數字列表= [ str(x) for x in range(0,10)]+['.']
邏輯列表= ['True', 'False', ' and ',' or ',' not ']
算符列表= [
'(',')','+', '-','*', '/', '**', '//','%',
'sin(','cos(','tan(','pi','exp(','erf(',
'random()','randint(',
'==','<','<=','>','>='
]
功能列表= ['計算','清除']
列表群= [數字列表, 邏輯列表, 功能列表, 算符列表]
窗= 窗類()
窗.標題('仁園牌計算窗')
文= 文類(窗, bg= 'pink')
出入框= 框類(窗, bg= 'cyan')
文.格位( row= 0, column= 0, columnspan= len(列表群))
出入框.格位(row= 1, column= 0, columnspan= len(列表群))
col= 0
for 列表 in 列表群:
框= 框類(窗)
框.格位(row= 2, column= col)
col+=1
L= len(列表)
M= int(L**.5)
n= 0
for 符 in 列表:
def 命令(x= 符):
點擊(x)
鈕= 鈕類(框, text= 符, width= 5, command= 命令)
r, c= n//M, n%M
n += 1
鈕.格位(row= r,column= c)
標= 標類(出入框, bg="gray", text='出入框')
出入盒= 盒類(出入框, bg= "yellow")
標.格位( row=0, column=0)
出入盒.格位(row=1, column=0)
#
# 正式開跑!
#
窗.主迴圈()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment