您的位置:

python界面计算器,用python制作计算器

本文目录一览:

如何用python编写计算器

我想你的需求应该是一个图形界面的程序,而不是简单的在命令行上输入。

那么,要做的第一件事就是选择一个图形界面套件。可以使用原生的TK,也可以用跨平台性能很好的wxPython,或者是整体结构很像MFC的PyWin32。至于pyGTK,pyQT,都是可选的,但是相对来说文档比较少,学习不便。

选定图形库之后,就可以看文档范例了。计算器总体是比较简单的。我记得WxPython的demo里直接就有一个简单计算器,您可以直接取来用。

python计算器

python计算器实现:

wx.TextCtrl(文本输入控件),这个作为计算器的显示屏,点击数字时用AppendText方法将数字添加至文本末尾,要取出数字时用GetValue方法,点击运算符时要将文本框中的数字清空(先存储)用Clear方法然后还有将操作符保存,点击等号后要将第二个操作数存储,然后用int方法将字符串转换为数字,计算后用SetValue方法将结果送入文本框,具体代码如下:

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()

将 Python 当做计算器使用方法?

我们来尝试一些简单的 Python 命令。启动解释器然后等待主提示符 出现(不需要很久)。

3.1.1. 数字

解释器表现得就像一个简单的计算器:可以向其录入一些表达式,它会给出返回值。表达式语法很直白:运算符 +,-,* 和 / 与其它语言一样(例如:Pascal 或 C);括号 (()) 用于分组。

整数(例如,2, 4, 20 )的类型是 int,带有小数部分的数字(例如,5.0, 1.6)的类型是 float。在本教程的后面我们会看到更多关于数字类型的内容。

除法(/)永远返回一个浮点数。如要使用 floor 除法 并且得到整数结果(丢掉任何小数部分),你可以使用 // 运算符;要计算余数你可以使用 %

此变量对于用户是只读的。不要尝试给它赋值 —— 你只会创建一个独立的同名局部变量,它屏蔽了系统内置变量的魔术效果。

除了 int 和 float,Python 还支持其它数字类型,例如 Decimal 和 Fraction。Python 还内建支持 复数 ,使用后缀 j 或 J 表示虚数部分

用PYTHON2做个计算器,只要加减乘除

'''

命令行简易计算器

'''

import sys

class culate():

#加法

def add(self,a,b):

return a+b

#减法

def mut(self,a,b):

return a-b

#乘法

def sub(self,a,b):

return a*b

#除法

def mod(self,a,b):

return a/b

c=culate()

while True:

n=input("请选择你的操作:\n1.加法\n2.减法\n3.乘法\n4.除法\n0.退出\n")

if n=="0":

break

elif n=="1":

a=input("请输入第一个数:")

b=input("请输入第二个数:")

print(c.add(int(a),int(b)))

continue

elif n=="2":

a=input("请输入第一个数:")

b=input("请输入第二个数:")

print(c.mut(int(a),int(b)))

continue

elif n=="3":

a=input("请输入第一个数:")

b=input("请输入第二个数:")

print(c.sub(int(a),int(b)))

continue

elif n=="4":

a=input("请输入第一个数:")

b=input("请输入第二个数:")

print(c.mod(int(a),int(b)))

continue

'''

结果:

请选择你的操作:

1.加法

2.减法

3.乘法

4.除法

0.退出

3

请输入第一个数:9

请输入第二个数:3

27

请选择你的操作:

1.加法

2.减法

3.乘法

4.除法

0.退出

4

请输入第一个数:9

请输入第二个数:3

3.0

请选择你的操作:

1.加法

2.减法

3.乘法

4.除法

0.退出

'''

如何运用Python编写简易计算器

import time

print("计算器")

print("+等于加法模式 -等于减法模式 *等于乘法模式 /等于除法模式")

while 2 1:

try:

print("请输入+,-,*或/")

a = input()

if a == "+":

print("请输入第1个加数")

b = input()

print("请输入第2个加数")

c = input()

print("计算中")

time.sleep(0.3)

j = float(b) + float(c)

print("等于"+str(j))

elif a == "-":

print("请输入被减数")

b = input()

print("请输入减数")

c = input()

print("计算中")

time.sleep(0.3)

j = float(b) - float(c)

print("等于"+str(j))

elif a == "*":

print("请输入第1个因数")

b = input()

print("请输入第2个因数")

c = input()

print("计算中")

time.sleep(0.3)

j = float(b) * float(c)

print("等于"+str(j))

elif a == "/":

print("……等于余数模式 .等于小数模式")

print("请输入……或.")

a = input()

if a == ".":

print("请输入被除数")

b = input()

print("请输入除数")

c = input()

print("计算中")

time.sleep(0.3)

j = float(b) / float(c)

print("等于"+str(j))

if c == "0":

print("除数不能为0!")

elif a == "……":

print("请输入被除数")

b = input()

print("请输入除数")

c = input()

j = float(b) // float(c)

e = float(b) % float(c)

print("等于"+str(j)+"……"+str(e))

if c == "0":

print("除数不能为0!")

except Exception as e:

print("您输入的内容有错误")