一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語(yǔ)言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - python實(shí)現(xiàn)簡(jiǎn)易版計(jì)算器

python實(shí)現(xiàn)簡(jiǎn)易版計(jì)算器

2021-01-10 00:19--BurningCodes-- Python

這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)易版計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

學(xué)了一周的Python,這篇文章算是為這段時(shí)間自學(xué)做的小總結(jié)。

一、Python簡(jiǎn)介

Python是一門十分優(yōu)美的腳本語(yǔ)言,如果學(xué)過(guò)java、c++那入門Python是非常簡(jiǎn)單的。Python具有豐富和強(qiáng)大的類庫(kù)。它常被昵稱為膠水語(yǔ)言,它能夠很輕松的把用其他語(yǔ)言制作的各種模塊(尤其是C/C++)輕松地聯(lián)結(jié)在一起。常見的一種應(yīng)用情形是,使用Python快速生成程序的原型(有時(shí)甚至是程序的最終界面),然后對(duì)其中有特別要求的部分,用更合適的語(yǔ)言改寫。

二、Python版計(jì)算器的實(shí)現(xiàn)

工具準(zhǔn)備:

1. Python2.7
2. wxPython
3. wxGlade界面編輯工具
4. pyCharm

具體配置什么的我就不說(shuō)了,網(wǎng)上有很多。Python的GUI開發(fā)庫(kù)有很多,這里我們使用wxPython。用wxGlade編輯界面,wxGlade是一款很好用的GUI編輯工具,它最大的優(yōu)點(diǎn)是能自動(dòng)生成編輯好的圖形界面的代碼。

這里主要介紹幾點(diǎn):

wx.TextCtrl(文本輸入控件),這個(gè)作為計(jì)算器的顯示屏,點(diǎn)擊數(shù)字時(shí)用AppendText方法將數(shù)字添加至文本末尾,要取出數(shù)字時(shí)用GetValue方法,點(diǎn)擊運(yùn)算符時(shí)要將文本框中的數(shù)字清空(先存儲(chǔ))用Clear方法然后還有將操作符保存,點(diǎn)擊等號(hào)后要將第二個(gè)操作數(shù)存儲(chǔ),然后用int方法將字符串轉(zhuǎn)換為數(shù)字,計(jì)算后用SetValue方法將結(jié)果送入文本框,具體代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
import wx
 
# begin wxGlade: extracode
# end wxGlade
 
 
class MyFrame(wx.Frame):
 def __init__(self, *args, **kwds):
 # begin wxGlade: MyFrame.__init__
 kwds["style"] = wx.DEFAULT_FRAME_STYLE
 wx.Frame.__init__(self, *args, **kwds)
 self.text_ctrl_1 = wx.TextCtrl(self, -1, "",style=wx.TE_READONLY)
 self.button_37 = wx.Button(self, -1, "1")
 self.button_38 = wx.Button(self, -1, "2")
 self.button_39 = wx.Button(self, -1, "3")
 self.button_40 = wx.Button(self, -1, "+")
 self.button_41 = wx.Button(self, -1, "4")
 self.button_42 = wx.Button(self, -1, "5")
 self.button_43 = wx.Button(self, -1, "6")
 self.button_44 = wx.Button(self, -1, "-")
 self.button_46 = wx.Button(self, -1, "7")
 self.button_45 = wx.Button(self, -1, "8")
 self.button_47 = wx.Button(self, -1, "9")
 self.button_48 = wx.Button(self, -1, "x")
 self.button_49 = wx.Button(self, -1, "C")
 self.button_50 = wx.Button(self, -1, "0")
 self.button_51 = wx.Button(self, -1, "=")
 self.button_52 = wx.Button(self, -1, "/")
 
 self.__set_properties()
 self.__do_layout()
 
 self.Bind(wx.EVT_BUTTON, self.bu1, self.button_37)
 self.Bind(wx.EVT_BUTTON, self.bu2, self.button_38)
 self.Bind(wx.EVT_BUTTON, self.bu3, self.button_39)
 self.Bind(wx.EVT_BUTTON, self.bu_plus, self.button_40)
 self.Bind(wx.EVT_BUTTON, self.bu4, self.button_41)
 self.Bind(wx.EVT_BUTTON, self.bu5, self.button_42)
 self.Bind(wx.EVT_BUTTON, self.bu6, self.button_43)
 self.Bind(wx.EVT_BUTTON, self.bu_min, self.button_44)
 self.Bind(wx.EVT_BUTTON, self.bu7, self.button_46)
 self.Bind(wx.EVT_BUTTON, self.bu8, self.button_45)
 self.Bind(wx.EVT_BUTTON, self.bu9, self.button_47)
 self.Bind(wx.EVT_BUTTON, self.bu_mul, self.button_48)
 self.Bind(wx.EVT_BUTTON, self.bu_clear, self.button_49)
 self.Bind(wx.EVT_BUTTON, self.bu0, self.button_50)
 self.Bind(wx.EVT_BUTTON, self.bu_result, self.button_51)
 self.Bind(wx.EVT_BUTTON, self.bu_chu, self.button_52)
 # end wxGlade
 self.Show(True)
 
 def __set_properties(self):
 # begin wxGlade: MyFrame.__set_properties
 self.SetTitle("Python Calculater by CYG")
 self.text_ctrl_1.SetMinSize((400, 50))
 self.button_37.SetMinSize((100, 50))
 self.button_38.SetMinSize((100, 50))
 self.button_39.SetMinSize((100, 50))
 self.button_40.SetMinSize((100, 50))
 self.button_41.SetMinSize((100, 50))
 self.button_42.SetMinSize((100, 50))
 self.button_43.SetMinSize((100, 50))
 self.button_44.SetMinSize((100, 50))
 self.button_46.SetMinSize((100, 50))
 self.button_45.SetMinSize((100, 50))
 self.button_47.SetMinSize((100, 50))
 self.button_48.SetMinSize((100, 50))
 self.button_49.SetMinSize((100, 50))
 self.button_50.SetMinSize((100, 50))
 self.button_51.SetMinSize((100, 50))
 self.button_52.SetMinSize((100, 50))
 # end wxGlade
 
 def __do_layout(self):
 # begin wxGlade: MyFrame.__do_layout
 sizer_2 = wx.BoxSizer(wx.VERTICAL)
 sizer_3 = wx.BoxSizer(wx.VERTICAL)
 grid_sizer_1 = wx.GridSizer(4, 4, 0, 0)
 sizer_3.Add(self.text_ctrl_1, 0, 0, 0)
 grid_sizer_1.Add(self.button_37, 0, 0, 0)
 grid_sizer_1.Add(self.button_38, 0, 0, 0)
 grid_sizer_1.Add(self.button_39, 0, 0, 0)
 grid_sizer_1.Add(self.button_40, 0, 0, 0)
 grid_sizer_1.Add(self.button_41, 0, 0, 0)
 grid_sizer_1.Add(self.button_42, 0, 0, 0)
 grid_sizer_1.Add(self.button_43, 0, 0, 0)
 grid_sizer_1.Add(self.button_44, 0, 0, 0)
 grid_sizer_1.Add(self.button_46, 0, 0, 0)
 grid_sizer_1.Add(self.button_45, 0, 0, 0)
 grid_sizer_1.Add(self.button_47, 0, 0, 0)
 grid_sizer_1.Add(self.button_48, 0, 0, 0)
 grid_sizer_1.Add(self.button_49, 0, 0, 0)
 grid_sizer_1.Add(self.button_50, 0, 0, 0)
 grid_sizer_1.Add(self.button_51, 0, 0, 0)
 grid_sizer_1.Add(self.button_52, 0, 0, 0)
 sizer_3.Add(grid_sizer_1, 1, wx.EXPAND, 0)
 sizer_2.Add(sizer_3, 1, wx.EXPAND, 0)
 self.SetSizer(sizer_2)
 sizer_2.Fit(self)
 self.Layout()
 # end wxGlade
 
 def bu1(self, event): # wxGlade: MyFrame.<event_handler>
 self.text_ctrl_1.AppendText("1")
 event.Skip()
 
 def bu2(self, event): # wxGlade: MyFrame.<event_handler>
 self.text_ctrl_1.AppendText("2")
 event.Skip()
 
 def bu3(self, event): # wxGlade: MyFrame.<event_handler>
 self.text_ctrl_1.AppendText("3")
 event.Skip()
 
 def bu_plus(self, event): # wxGlade: MyFrame.<event_handler>
 self.num1=self.text_ctrl_1.GetValue()
 self.op="+"
 self.text_ctrl_1.Clear()
 event.Skip()
 
 def bu4(self, event): # wxGlade: MyFrame.<event_handler>
 self.text_ctrl_1.AppendText("4")
 event.Skip()
 
 def bu5(self, event): # wxGlade: MyFrame.<event_handler>
 self.text_ctrl_1.AppendText("5")
 event.Skip()
 
 def bu6(self, event): # wxGlade: MyFrame.<event_handler>
 self.text_ctrl_1.AppendText("6")
 event.Skip()
 
 def bu_min(self, event): # wxGlade: MyFrame.<event_handler>
 self.num1=self.text_ctrl_1.GetValue()
 self.op="-"
 self.text_ctrl_1.Clear()
 event.Skip()
 
 def bu7(self, event): # wxGlade: MyFrame.<event_handler>
 self.text_ctrl_1.AppendText("7")
 event.Skip()
 
 def bu8(self, event): # wxGlade: MyFrame.<event_handler>
 self.text_ctrl_1.AppendText("8")
 event.Skip()
 
 def bu9(self, event): # wxGlade: MyFrame.<event_handler>
 self.text_ctrl_1.AppendText("9")
 event.Skip()
 
 def bu_mul(self, event): # wxGlade: MyFrame.<event_handler>
 self.num1=self.text_ctrl_1.GetValue()
 self.op="x"
 self.text_ctrl_1.Clear()
 event.Skip()
 
 def bu_clear(self, event): # wxGlade: MyFrame.<event_handler>
 self.text_ctrl_1.Clear()
 event.Skip()
 
 def bu0(self, event): # wxGlade: MyFrame.<event_handler>
 self.text_ctrl_1.AppendText("0")
 event.Skip()
 
 def bu_chu(self, event): # wxGlade: MyFrame.<event_handler>
 self.num1=self.text_ctrl_1.GetValue()
 self.op="/"
 self.text_ctrl_1.Clear()
 event.Skip()
 
 def bu_result(self, event): # wxGlade: MyFrame.<event_handler>
 self.num2=self.text_ctrl_1.GetValue()
 num1=int(self.num1)
 num2=int(self.num2)
 if self.op=="+":
 self.text_ctrl_1.SetValue(str(num1+num2))
 elif self.op=="-":
 self.text_ctrl_1.SetValue(str(num1-num2))
 elif self.op=="x":
 self.text_ctrl_1.SetValue(str(num1*num2))
 elif self.op=="/":
 self.text_ctrl_1.SetValue(str(num1/num2))
 event.Skip()
 
 
# end of class MyFrame
if __name__ == "__main__":
 
 app=wx.App(False)
 myframe=MyFrame(None)
 app.MainLoop()

按鈕的ID,名稱什么的我基本都是用wxGlade自動(dòng)生成的。
沒(méi)有做什么美化,只是為了練練手,給張圖:

python實(shí)現(xiàn)簡(jiǎn)易版計(jì)算器

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:http://blog.csdn.net/cyg0810/article/details/23865543

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 青青青国产视频 | 都市风流贵妇激情 | 国产精品www夜色影视 | 亚洲精品日韩专区在线观看 | 国产精品天天影视久久综合网 | 动漫美女隐私尿口图片 | 国产精品亚洲午夜一区二区三区 | 久久中文字幕无线观看 | 深夜www| 美女张开大腿让男人桶 | 成年人在线观看免费视频 | 99视频久久| 亚洲咪咪 | 免费看一区二区三区 | 好紧好爽的午夜寂寞视频 | 5g影院天天影院天天爽影院网站 | 日韩欧美在线观看综合网另类 | 久久99精品久久久久久园产越南 | 波多洁野衣一二区三区 | 美女被草逼 | 热国产热综合 | 久久精品在现线观看免费15 | 丝瓜香蕉视频 | 五月桃花网婷婷亚洲综合 | 嗯啊视频在线 | 九九99靖品 | 色综合图区| 校花小雪灌满了男人们的浓浆 | 狠狠色狠狠色综合曰曰 | 久久视热频国产这里只有精品23 | 色综合天天娱乐综合网 | 亚洲 欧美 日韩 综合 | 免费高清www动漫视频播放器 | 日本人妖在线 | 亚洲天堂在线视频播放 | 我的绝色岳每雯雯 | 2021麻豆剧果冻传媒入口永久 | 成年视频在线播放 | 成人在线免费看 | 国产色司机在线视频免费观看 | 电车痴汉中文字幕 |