在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() #引用自身除法
以上就是实现计算器的几种方式。