[源码依次]应用Python代码编写计算器小依次

  • A+
所属分类:帝国cms插件
摘要

1im小白源码资源站tkinter2importtkinter.messagebox3importmath4classJSQ:567def__init__(self):8#创立主界面9self.root=tkinter.Tk()小白源码资源站10self.root.minsize(

1 im小白源码资源站http://www.526bt.com/account?__preferral=41b2453033.2042mport tkinter
2 import tkinter.messagebox
3 import math
4 class JSQ:
5
6
7 def __init__(self):
8 #创立主界面
9 self.root= tkinter.Tk()
小白源码资源站http://www.526bt.com/account?__preferral=41b2453033.2042
10 self.root.minsize(270, 330)
11 self.root.maxsize(270, 330)
12 self.root.title('小可乐的计算器')
13 #定义一个变量赋值给页面label
14 self.result= tkinter.StringVar()
15 #界面先显示个0
16 self.result.set(0)
17 # 设置一个全局变量 运算数字和符号的列表
18 self.lists= []
19 # 添加一个辨别可否按下运算符号的标记
20 self.isPressSign= False
21 # 添加一个辨别可否运算终了的标记,假设运算终了在获得数字的方法中会清空上一轮运算结果
22 self.islistsclear= False
23 # 添加一个辨别百分号可否应用的功用
24 self.isbaifenhao= False
25 # 为了下面的百分号方法应用(在百分号中为按下运算符号以后的数字)
26 self.num1=''
27 # 定义一个全局变量(获得百分好的结果)为了在‘=’运算的时分输入
28 self.result3= None
29 # 获得运算符号之前的数字
30 self.num=''
31 # 获得运算符号给百分好方法应用
32 self.sign1=''
33 self.layout()
34 self.menubar()
35 #将窗口不时显示
36 self.root.mainloop()
37
38 def menubar(self):
39 # 创立总菜单
40 allmenu= tkinter.Menu(self.root)
41 # 创立子菜单
42 filemenu=tkinter.Menu(allmenu, tearoff=0)
43 # 在子菜单里添加文件
44 filemenu.add_command(label='规范型(T) Alt+1',command=lambda : self.func2())
45 filemenu.add_command(label='迷信性(S) Alt+2',command=lambda : self.func2())
46 filemenu.add_command(label='依次员(p) Alt+3',command=lambda : self.func2())
47 filemenu.add_command(label='统计信息(A) Alt+4',command=lambda : self.func2())
48 # 创立联系线
49 filemenu.add_separator()
50 filemenu.add_command(label='汗青记录(Y) Ctrl+H',command=lambda : self.func2())
51 filemenu.add_command(label='数学分组(I)',command=lambda : self.func2())
52 filemenu.add_separator()
53 filemenu.add_command(label='基本(B) Ctrl+F4',command=lambda : self.func2())
54 filemenu.add_command(label='单位转换(U) Ctrl+U',command=lambda : self.func2())
55 filemenu.add_command(label='日期计算(D) Ctrl+E',command=lambda : self.func2())
56 # 在子菜单里再创立一个菜单
57 filemenunei=tkinter.Menu(filemenu, tearoff=0)
58 # 在子菜单里的菜单添加文件
59 filemenunei.add_command(label='抵押(M)',command=lambda : self.func2())
60 filemenunei.add_command(label='汽车租赁(V)',command=lambda : self.func2())
61 filemenunei.add_command(label='油耗(mpg)(F)',command=lambda : self.func2())
62 filemenunei.add_command(label='油耗(1/100km)(U)',command=lambda : self.func2())
63 # 将子菜单里的菜单添加到子菜单里
64 filemenu.add_cascade(label='任务表(W)', menu=filemenunei)
65 # 添加参与功用
66 filemenu.add_command(label='参与', command=self.root.quit)
67 # 将子菜单添加到总菜单里
68 allmenu.add_cascade(label='检查(V)', menu=filemenu)
69 # 再创立一个子菜单
70 editmenu=tkinter.Menu(allmenu, tearoff=0)
71 # 在子菜单里添加文件
72 editmenu.add_command(label='复制(C)',command=lambda : self.func2())
73 editmenu.add_command(label='粘贴(P)',command=lambda : self.func2())
74 # 创立联系线
75 editmenu.add_separator()
76 # 在子菜单里创立一个菜单
77 editmenunei=tkinter.Menu(editmenu, tearoff=0)
78 # 在子菜单里的菜单添加文件
79 editmenunei.add_command(label='复制汗青记录(I)', stat='disable')
80 editmenunei.add_command(label='编辑(E) F2', stat='disable')
81 editmenunei.add_command(label='撤消编辑(N) Esc', stat='disable')
82 editmenunei.add_command(label='清除(L) Ctrl+Shift+D', stat='disable')
83 # 将子菜单里的菜单添加到子菜单
84 editmenu.add_cascade(label='汗青记录(H)', menu=editmenunei)
85 # 将子菜单添加到总菜单
86 allmenu.add_cascade(label='编辑(E)', menu=editmenu)
87 # 创立第三个子菜单
88 helpmenu=tkinter.Menu(allmenu, tearoff=0)
89 # 在第三个子菜单里添加文件
90 helpmenu.add_command(label='检查协助(v) F1',command=lambda : self.func2())
91 # 创立联系线
92 helpmenu.add_separator()
93 helpmenu.add_command(label='关于计算器(A)',command=lambda : self.func2())
94 # 将第三个子菜单添加到总菜单中
95 allmenu.add_cascade(label='协助(H)', menu=helpmenu)
96 # 将总菜单计划到主窗口
97 self.root.config(menu=allmenu)
98
99 # 下面代码用于页面计划
100 def layout(self):
101 #显示结果的标签
102 label=tkinter.Label(self.root, textvariable=self.result, bg='white', font=('黑体', 10), anchor='e')
103 label.place(x=20, y=10, width=230, height=30)
104
105 btnmc=tkinter.Button(self.root, text='MC',command=lambda : self.func2())
106 btnmc.place(x=20, y=50, width=30, height=30)
107
108 btnmr=tkinter.Button(self.root, text='MR',command=lambda : self.func2())
109 btnmr.place(x=70, y=50, width=30, height=30)
110
111 btnms=tkinter.Button(self.root, text='MS',command=lambda : self.func2())
112 btnms.place(x=120, y=50, width=30, height=30)
113
114 btnmjia=tkinter.Button(self.root, text='M+',command=lambda : self.func2())
115 btnmjia.place(x=170, y=50, width=30, height=30)
116
117 btnmjian=tkinter.Button(self.root, text='M-',command=lambda : self.func2())
118 btnmjian.place(x=220, y=50, width=30, height=30)
119
120 btnjiantou=tkinter.Button(self.root, text='←', command=lambda: self.jiantou())
121 btnjiantou.place(x=20, y=90, width=30, height=30)
122
123 btnce=tkinter.Button(self.root, text='CE', command=lambda: self.CE())
124 btnce.place(x=70, y=90, width=30, height=30)
125
126 btnc=tkinter.Button(self.root, text='C', command=lambda: self.clears())
127 btnc.place(x=120, y=90, width=30, height=30)
128
129 btnzhengfu=tkinter.Button(self.root, text='±', command=lambda: self.zhenffu())
130 btnzhengfu.place(x=170, y=90, width=30, height=30)
131
132 btnkaigen=tkinter.Button(self.root, text='√', command=lambda: self.sqrts())
133 btnkaigen.place(x=220, y=90, width=30, height=30)
134
135 btn7=tkinter.Button(self.root, text='7', command=lambda: self.pressNum('7'))
136 btn7.place(x=20, y=130, width=30, height=30)
137
138 btn8=tkinter.Button(self.root, text='8', command=lambda: self.pressNum('8'))
139 btn8.place(x=70, y=130, width=30, height=30)
140
141 btn9=tkinter.Button(self.root, text='9', command=lambda: self.pressNum('9'))
142 btn9.place(x=120, y=130, width=30, height=30)
143
144 btnchu=tkinter.Button(self.root, text='/', command=lambda: self.pressCompute('/'))
145 btnchu.place(x=170, y=130, width=30, height=30)
146
147 btnbaifen=tkinter.Button(self.root, text='%', command=lambda: self.baifenhao())
148 btnbaifen.place(x=220, y=130, width=30, height=30)
149
150 btn4=tkinter.Button(self.root, text='4', command=lambda: self.pressNum('4'))
151 btn4.place(x=20, y=170, width=30, height=30)
152
153 btn5=tkinter.Button(self.root, text='5', command=lambda: self.pressNum('5'))
154 btn5.place(x=70, y=170, width=30, height=30)
155
156 btn6=tkinter.Button(self.root, text='6', command=lambda: self.pressNum('6'))
157 btn6.place(x=120, y=170, width=30, height=30)
158
159 btncheng=tkinter.Button(self.root, text='*', command=lambda: self.pressCompute('*'))
160 btncheng.place(x=170, y=170, width=30, height=30)
161
162 btnfenshu=tkinter.Button(self.root, text='1/X', command=lambda: self.fenshu())
163 btnfenshu.place(x=220, y=170, width=30, height=30)
164
165 btn1=tkinter.Button(self.root, text='1', command=lambda: self.pressNum('1'))
166 btn1.place(x=20, y=210, width=30, height=30)
167
168 btn2=tkinter.Button(self.root, text='2', command=lambda: self.pressNum('2'))
169 btn2.place(x=70, y=210, width=30, height=30)
170
171 btn3=tkinter.Button(self.root, text='3', command=lambda: self.pressNum('3'))
172 btn3.place(x=120, y=210, width=30, height=30)
173
174 btnjian=tkinter.Button(self.root, text='-', command=lambda: self.pressCompute('-'))
175 btnjian.place(x=170, y=210, width=30, height=30)
176
177 btndenghao=tkinter.Button(self.root, text='=', command=lambda: self.pressEqual())
178 btndenghao.place(x=220, y=210, width=30, height=70)
179
180 btn0=tkinter.Button(self.root, text='0', command=lambda: self.pressNum('0'))
181 btn0.place(x=20, y=250, width=80, height=30)
182
183 btndian=tkinter.Button(self.root, text='.', command=lambda: self.pressNum('.'))
184 btndian.place(x=120, y=250, width=30, height=30)
185
186 btnjia=tkinter.Button(self.root, text='+', command=lambda: self.pressCompute('+'))
187 btnjia.place(x=170, y=250, width=30, height=30)
188
189 # 数字函数(获得数字的函数)
190 def pressNum(self,num):
191 # 下面的百分好会用到
192 self.num1= num
193 # 辨别可否按下运算符号
194 if self.isPressSign== False:
195 pass
196 #假设按下运算符号界面归0
197 else:
198 self.result.set(0)
199 self.isPressSign= False
200 # 辨别运算可否终了
201 if self.islistsclear== False:
202 # 获得面板上原本的数字
203 oldNum= self.result.get()
204 # 辨别原有数字可否为零
205 if oldNum=='0':
206 #将传入的数字显示
207 self.result.set(num)
208 else:
209 #本来的数字加上现在输入的数字
210 newNum=oldNum + num
211 self.result.set(newNum)
212 # 运算终了界面主动清空
213 else:
214 # lists.clear()#假设添加这行代码就不能在上一轮运算结果的基础上运算了
215 self.result.set('0')
216 self.islistsclear= False
217 self.result.set(num)
218
219 # 运算操作(获得运算符号然后将数字和符号添加到列表中)
220 def pressCompute(self,sign):
221 # 获得界面上的数字
222 if True:
223 #获得输入运算符之前的数字
224 self.num= self.result.get()
225 #将数字加出列表当中
226 self.lists.append(self.num)
227 #将运算符参与到列表当中
228 self.lists.append(sign)
229 #将运算符赋值给sign1(下面的百分号方法会用到)
230 self.sign1= sign
231 #将可否按下运算符号标记改成True
232 self.isPressSign= True
233 # 在刚末尾的时分添加一个负号(-)用于正负好转换应用
234 #假设列表第一名为0
235 if self.lists[0]=='0':
236 #假设列表第二位为‘-’
237 if self.lists[1]=='-':
238 self.result.set('-')
239 # 设置运算符号的形状
240 self.isPressSign= False
241
242 # 获得运算结果(将列表内的值转换为字符串,然后将字符串用python代码履行)
243 def pressEqual(self):
244 # 获得以后页面的数字
245 curnum= self.result.get()
246 self.lists.append(curnum)
247 #将列表中的数据转换为字符串
248 computeStr=''.join(self.lists)
249 #将字符串用python代码履行
250 endNum= eval(computeStr)
251 #界面显示结果
252 self.result.set(endNum)
253 #假设百分号标记触发
254 if self.isbaifenhao== True:
255 #界面显示self.result3
256 self.result.set(self.result3)
257 #运算完毕后将列表清空
258 self.lists.clear()
259 #将运算标记改成True
260 self.islistsclear= True
261
262 # 清空运算
263 def clears(self):
264 self.lists.clear()
265 self.result.set('0')
266
267 # 删除上一名数字
268 def CE(self):
269 self.result.set('0')
270
271 # 用于更改数的正负值
272 def zhenffu(self):
273 self.result1= self.result.get()
274 self.result.set(float(self.result1) * (-1))
275 self.islistsclear= True
276
277 # 用于开平方运算
278 def sqrts(self):
279 result1= self.result.get()
280 self.result.set(math.sqrt(float(result1)))
281 self.lists.clear()
282 self.islistsclear= True
283
284 # 用于求x/9的值
285 def fenshu(self):
286 result1= self.result.get()
287 self.result.set(1 / float(result1))
288 self.islistsclear= True
289
290 #用于求百分号功用的方法
291 def baifenhao(self):
292 listss= []
293 # 辨别假设输入一个数没输运算符号的话界面主动归零
294 if len(self.lists) < 1: 295 self.result.set(0) 296 else: 297 #获得输入运算符号之前的数字 298 a1= float(self.num) 299 #获得运算符号 300 a2= self.sign1 301 302 #再次获得输入运算符号之前的数字 303 a3= float(self.num) 304 305 a4='*' 306 #算出最后一个数字的百分数 307 a6=float(self.num1) / 100 308 309 #算出百分号的阿谁结果 310 resultmuqian=a3 * a6 311 #总结果 312 resultbai=str(a1) + a2 + str(a3) + a4 + str(a6) 313 #将字符串用python代码履行 314 self.result3= eval(resultbai) 315 #在界面上按下%符号是显示的结果 316 self.result.set(resultmuqian) 317 #修改百分号的标记 318 self.isbaifenhao= True 319 320 #箭头的意义删除后一名数字 321 def jiantou(self): 322 result1= self.result.get() 323 result1= list(result1) 324 del result1[-1] 325 result1= str(result1) 326 self.result.set(result1) 327 328 def func2(self): 329 tkinter.messagebox.askokcancel(title='略过',message='没完成') 330 331 332 myjsq=JSQ() 好了,以上就是应用Python代码完成一个计算器小依次的过程。

分享当前页面将至少获得10%佣金,点此获取推广链接(规则说明)。

本站VIP源码资源永久免费下载!持续更新!www.526bt.com

加入999永久VIP会员带做项目包赚钱!教引流包搭建,社群资源共享!

新项目更新通知QQ群:767688774 站长技术交流QQ群:552760713

点击这里给我发消息

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
最新版影视APP仿乐尚视界/橙子/聚合影视/苹果IOS安卓版 苹果签名内部价
2019年最新个体营业执照代办500元3-4天即可快递发你
SLL证书配置支持https网站
提供APP打包服务,APP封装

发表评论

您必须才能发表评论!