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()   #引用自身除法

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

原文地址:https://www.cnblogs.com/fighter007/p/8267168.html