欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2020年06月22日 11:14:33   作者:--BurningCodes--  
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡易版計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

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

一、Python簡介

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

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

工具準(zhǔn)備:

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

具體配置什么的我就不說了,網(wǎng)上有很多。Python的GUI開發(fā)庫有很多,這里我們使用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ù)字清空(先存儲)用Clear方法然后還有將操作符保存,點(diǎn)擊等號后要將第二個(gè)操作數(shù)存儲,然后用int方法將字符串轉(zhuǎn)換為數(shù)字,計(jì)算后用SetValue方法將結(jié)果送入文本框,具體代碼如下:

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)生成的。
沒有做什么美化,只是為了練練手,給張圖:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • pyside6-uic生成py代碼中文為unicode(亂碼)的問題解決方案

    pyside6-uic生成py代碼中文為unicode(亂碼)的問題解決方案

    這篇文章主要介紹了如何解決pyside6-uic生成py代碼中文為unicode(亂碼)的問題,文中通過代碼和圖文介紹的非常詳細(xì),對大家解決問題有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • python數(shù)據(jù)結(jié)構(gòu)輸入輸出及控制和異常

    python數(shù)據(jù)結(jié)構(gòu)輸入輸出及控制和異常

    這篇文章主要介紹了python數(shù)據(jù)結(jié)構(gòu)輸入輸出及控制和異常,上一章節(jié)中我們介紹了python的基礎(chǔ)數(shù)據(jù)類型和集合數(shù)據(jù)類型,這章節(jié)給大家介紹一下python的輸入輸出、控制和異常,對數(shù)據(jù)類型感興趣的同學(xué)可以查看一下文章<BR>
    2021-12-12
  • ubuntu 安裝pyqt5和卸載pyQt5的方法

    ubuntu 安裝pyqt5和卸載pyQt5的方法

    這篇文章主要介紹了ubuntu 安裝pyqt5和卸載pyQt5的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • python類別數(shù)據(jù)數(shù)字化LabelEncoder?VS?OneHotEncoder區(qū)別

    python類別數(shù)據(jù)數(shù)字化LabelEncoder?VS?OneHotEncoder區(qū)別

    這篇文章主要為大家介紹了機(jī)器學(xué)習(xí):數(shù)據(jù)預(yù)處理之將類別數(shù)據(jù)數(shù)字化的方法LabelEncoder?VS?OneHotEncoder區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Python操作PDF圖片的基本方法(增刪改查)

    Python操作PDF圖片的基本方法(增刪改查)

    PDF文件中的圖片可以豐富文檔內(nèi)容,提升用戶的閱讀體驗(yàn),除了在PDF中添加圖片外,有時(shí)也需要替換或刪除其中的圖片,文本將提供三個(gè)示例,介紹如何使用Python?操作PDF文件中的圖片,需要的朋友可以參考下
    2024-04-04
  • Django中如何防范CSRF跨站點(diǎn)請求偽造攻擊的實(shí)現(xiàn)

    Django中如何防范CSRF跨站點(diǎn)請求偽造攻擊的實(shí)現(xiàn)

    這篇文章主要介紹了Django中如何防范CSRF跨站點(diǎn)請求偽造攻擊的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 解決hive中導(dǎo)入text文件遇到的坑

    解決hive中導(dǎo)入text文件遇到的坑

    這篇文章主要介紹了解決hive中導(dǎo)入text文件遇到的坑,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • python 迭代器和iter()函數(shù)詳解及實(shí)例

    python 迭代器和iter()函數(shù)詳解及實(shí)例

    這篇文章主要介紹了python 迭代器和iter()函數(shù)詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • python實(shí)現(xiàn)輸入三角形邊長自動(dòng)作圖求面積案例

    python實(shí)現(xiàn)輸入三角形邊長自動(dòng)作圖求面積案例

    這篇文章主要介紹了python實(shí)現(xiàn)輸入三角形邊長自動(dòng)作圖求面積案例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python自動(dòng)化辦公之Word文件內(nèi)容的讀取

    Python自動(dòng)化辦公之Word文件內(nèi)容的讀取

    word、excel、PPT,雖然說是特殊文件,其實(shí)也是實(shí)際工作中我們經(jīng)常會用到的文件類型。本文將為大家詳解Python讀取Word文件和文件內(nèi)容的方法,感興趣的可以了解一下
    2022-05-05

最新評論