• Python基础入门-实现计算器多种姿势


    在Python中,虽然定义一个函数只需要def关键字,但是他能实现多种功能和用途,比如今天我们讲解的这几种方式。如何使用函数实现一个计算器的功能呢?当然,实现计算器的方式有很多种,我们举几个比较典型的例子,借助函数来实现就比较容易。我们使用三种方式实现加法计算器的应用:

    1.IF嵌套语句  2.def函数实现  3.面向对象的实现方式

    先来看第一种:(通过if嵌套语句实现一个计算器功能,我一直觉得这种写法写起来是比较简洁,规范,明朗的)首先,先使用函数定义加、减、乘、除这四种计算方法。

    def add(a,b):
        return  a+b
    def sub(c,d):
        return c-d
    def multi(e,f):
        return e-f
    def divide(g,h):
        return g / h
    第二步:选择一下我们想要计算的方法:是加法还是减法还是乘法还是除法?
    print "请选择你要进行的运算: +  -  *  /"
    print "A.加法"
    print "B.减法"
    print "C.乘法"
    print "D.除法"
    第三步:输入数字作为函数的入参,为后面IF语句实现加减乘除运算。
    choice  = input("请输入A/B/C/D:")
    letter1 =  int(input("请输入第一个数字:"))
    letter2 =  int(input("请输入第二个数字:"))
    第四步:使用IF语句实现函数的调用以及入参,实现计算器功能。
    if  choice == "A":
        print letter1,'+',letter2,'=',add(letter1,letter2)
    elif choice == "B":
        print letter1,'-',letter2,'=',sub(letter1,letter2)
    elif choice == "C":
        print letter1,'*',letter2,'=',multi(letter1,letter2)
    elif choice == "D":
        print  letter1,"/",letter2,'=',divide(letter1,letter2)
    else:
        print '没有此选项'
    完整代码如下:
    def add(a,b):
        return  a+b
    def sub(c,d):
        return c-d
    def multi(e,f):
        return e-f
    def divide(g,h):
        return g / h
    
    print "请选择你要进行的运算: +  -  *  /"
    print "A.加法"
    print "B.减法"
    print "C.乘法"
    print "D.除法"
    
    choice  = input("请输入A/B/C/D:")
    letter1 =  int(input("请输入第一个数字:"))
    letter2 =  int(input("请输入第二个数字:"))
    
    if  choice == "A":
        print letter1,'+',letter2,'=',add(letter1,letter2)
    elif choice == "B":
        print letter1,'-',letter2,'=',sub(letter1,letter2)
    elif choice == "C":
        print letter1,'*',letter2,'=',multi(letter1,letter2)
    elif choice == "D":
        print  letter1,"/",letter2,'=',divide(letter1,letter2)
    else:
        print '没有此选项'
    第二种实现方式,使用函数实现,我们在看下面的实现方式:
    1先定义加减乘除四个方法
    def add(a,b):
        return  a+b
    def sub(c,d):
        return c-d
    def multi(e,f):
        return e-f
    def divide(g,h):
        return g / h
    2.函数一步实现计算器功能
    def  cacultor():
        option = input("请选择:1+,2-,3*,4/")
        num1 = input('请输入第一个数字:')
        num2 = input('请输入第二个数字:')
        if   option == 1:
            print add(num1,num2)
        elif option == 2:
            print sub(num1,num2)
        elif option == 3:
            print multi(num1,num2)
        elif option == 4:
            print divide(num1,num2)
        else:
            print '没有此选项'
    
    cacultor()
    这种方式是直接把定义好的参数定义到了函数内部。对比第一种代码量上简洁了不少。
    完整代码如下
    1.定义加减乘除
    2.选择加减乘除
    3.函数实现功能
    def add(a,b):
        return  a+b
    def sub(c,d):
        return c-d
    def multi(e,f):
        return e-f
    def divide(g,h):
        return g / h
    def  cacultor():
        option = input("请选择:1+,2-,3*,4/")
        num1 = input('请输入第一个数字:')
        num2 = input('请输入第二个数字:')
        if   option == 1:
            print add(num1,num2)
        elif option == 2:
            print sub(num1,num2)
        elif option == 3:
            print multi(num1,num2)
        elif option == 4:
            print divide(num1,num2)
        else:
            print '没有此选项'
    
    cacultor()  #调用整个函数运行
    第三种的实现方式:使用面向对象的过程实现计算器功能。
    class Jisuan(object):
        def __init__(self,a,b):    #初始a,b两个参数  
            self.a = int(a)
            self.b = int(b)
    
        def add(self):
            if type(self.a) != int or type(self.b) != int:
                raise Exception('a,b必须为整型')   #如果输入的不是整型 就抛出错误
            return  self.a + self.b
        def sub(self):
            if type(self.a) != int or type(self.b) != int:
                raise  Exception('a,b必须为整型')
            return self.a  - self.b
        def mutil(self):
            if type(self.a) != int or type(self.b) != int:
                raise  Exception('a,b必须为整型')
            return self.a  * self.b
        def divide(self):
            if type(self.a) != int or type(self.b) != int:
                raise  Exception('a,b必须为整型')
            if self.b == 0:                                 #对除数进行判断 除数不能为0
                raise  Exception('除数不能为0',self.b)
            return self.a / self.b
    
    if __name__ == "__main__":
        test = Jisuan(55,20)  #实例化对象 test 
        print test.add()         #引用自身加法
        print test.sub()         #引用自身减法
        print test.mutil()      #引用自身乘法
        print test.divide()   #引用自身除法

     以上就是实现计算器的几种方式。

  • 相关阅读:
    对类对象使用new时地址分配的情况
    c++堆与栈的简单认识
    多态公有继承
    Cookie & Session & JSP入门
    Response & ServletContext
    Java网络编程篇文章阅读顺序
    URL编程
    UDP网络编程
    TCP网络编程
    InetAddress类的使用
  • 原文地址:https://www.cnblogs.com/fighter007/p/8267168.html
Copyright © 2020-2023  润新知