单位建网站,个人做网站如何赚钱吗,做爰的网站,腾讯云怎样做网站案例描述
实现加减乘法运算
# _*_ encoding:utf-8 _*_# 计算器, 实现一些基本的操作, 加减乘除运算, 以及打印结果操作# ------------------------------------代码1--------------------------------------
def jia(n1, n2):return n1 n2def jian(n1, n2):return n1 - n2de…案例描述
实现加减乘法运算
# _*_ encoding:utf-8 _*_# 计算器, 实现一些基本的操作, 加减乘除运算, 以及打印结果操作# ------------------------------------代码1--------------------------------------
def jia(n1, n2):return n1 n2def jian(n1, n2):return n1 - n2def cheng(n1, n2):return n1 * n2res jia(2, 4)
res2 cheng(5, 7)
print(res)
print(res2)#(2 6 - 4) * 5
r1 jia(2, 6)
r2 jian(r1, 4)
r3 cheng(r2, 5)
print(r3)# ------------------------------------代码2--------------------------------------
result 0def first_value(v):global resultresult vdef jia(n):global resultresult ndef jian(n):global resultresult - ndef cheng(n):global resultresult * nfirst_value(2)
jia(6)
result 123
jian(4)
cheng(5)
print(result)# ------------------------------------代码3--------------------------------------
## 封装到类提高安全性
class Caculator:__result 0classmethoddef first_value(cls, v):cls.__result vclassmethoddef jia(cls, n):cls.__result nclassmethoddef jian(cls, n):cls.__result - nclassmethoddef cheng(cls, n):cls.__result * nclassmethoddef show(cls):print(计算的结果是:%d % cls.__result)Caculator.first_value(2)Caculator.jia(6)
Caculator.jian(4)
Caculator.cheng(5)
Caculator.show()# ------------------------------------代码4--------------------------------------
## 增加并发功能
class Caculator:def __init__(self, num):self.__result numdef jia(self, n):self.__result ndef jian(self, n):self.__result - ndef cheng(self, n):self.__result * ndef show(self):print(计算的结果是:%d % self.__result)
# 创建计算器
c1 Caculator(2)
# 运算
c1.jia(6)
c1.jian(4)
c1.cheng(5)
c1.show()# ------------------------------------代码5--------------------------------------
## 容错处理数据验证
class Caculator:def check_num(self, num):if not isinstance(num, int):raise TypeError(当前这个数据的类型有问题, 应该是一个整型数据)def __init__(self, num):self.check_num(num)self.__result numdef jia(self, n):self.check_num(n)self.__result ndef jian(self, n):self.check_num(n)self.__result - ndef cheng(self, n):self.check_num(n)self.__result * ndef show(self):print(计算的结果是:%d % self.__result)c1 Caculator(2)
c1.jia(6)
c1.jian(a)
c1.cheng(5)
c1.show()# ------------------------------------代码6--------------------------------------
# 使用装饰器进行优化重构维护代码的完整性
class Caculator:def check_num_zsq(func):def inner(self, n):if not isinstance(n, int):raise TypeError(当前这个数据的类型有问题, 应该是一个整型数据)return func(self, n)return innercheck_num_zsqdef __init__(self, num):self.__result numcheck_num_zsqdef jia(self, n):self.__result ncheck_num_zsqdef jian(self, n):self.__result - ncheck_num_zsqdef cheng(self, n):self.__result * ndef show(self):print(计算的结果是:%d % self.__result)c1 Caculator(2)
c1.jia(6)
c1.jian(4)
c1.cheng(5)
c1.show()# ------------------------------------代码7--------------------------------------
# 实例调用类中的装饰器会报错将装饰器设为私有
class Caculator:def __check_num_zsq(func):def inner(self, n):if not isinstance(n, int):raise TypeError(当前这个数据的类型有问题, 应该是一个整型数据)return func(self, n)return inner__check_num_zsqdef __init__(self, num):self.__result num__check_num_zsqdef jia(self, n):self.__result n__check_num_zsqdef jian(self, n):self.__result - n__check_num_zsqdef cheng(self, n):self.__result * ndef show(self):print(计算的结果是:%d % self.__result)c1 Caculator(2)
c1.jia(6)
c1.jian(4)
c1.cheng(5)
c1.show()# ------------------------------------代码8--------------------------------------
# 针对用户的每个操作进行语音播报类似开启语音播报的计算器import win32com.clientclass Caculator:def __check_num_zsq(func):def inner(self, n):if not isinstance(n, int):raise TypeError(当前这个数据的类型有问题, 应该是一个整型数据)return func(self, n)return innerdef __say(self, word):# 1. 创建一个播报器对象speaker win32com.client.Dispatch(SAPI.SpVoice)# 2. 通过这个播报器对象, 直接, 播放相对应的语音字符串就可以speaker.Speak(word)def create_say_zsq(word):def __say_zsq(func):def inner(self, n):# 1. 创建一个播报器对象speaker win32com.client.Dispatch(SAPI.SpVoice)# 2. 通过这个播报器对象, 直接, 播放相对应的语音字符串就可以speaker.Speak(word str(n))return func(self, n)return innerreturn __say_zsq__check_num_zsqcreate_say_zsq()def __init__(self, num):self.__result num__check_num_zsqcreate_say_zsq(加)def jia(self, n):self.__result n__check_num_zsqcreate_say_zsq(减去)def jian(self, n):self.__result - n__check_num_zsqcreate_say_zsq(乘以)def cheng(self, n):self.__result * ndef show(self):self.__say(计算的结果是:%d % self.__result)print(计算的结果是:%d % self.__result)c1 Caculator(10)
c1.jia(6)
c1.jian(4)
c1.cheng(5)
c1.show()# ------------------------------------代码9--------------------------------------
# 播报优化
import win32com.clientclass Caculator:def __check_num_zsq(func):def inner(self, n):if not isinstance(n, int):raise TypeError(当前这个数据的类型有问题, 应该是一个整型数据)return func(self, n)return innerdef __say(self, word):# 1. 创建一个播报器对象speaker win32com.client.Dispatch(SAPI.SpVoice)# 2. 通过这个播报器对象, 直接, 播放相对应的语音字符串就可以speaker.Speak(word)def __create_say_zsq(word):def __say_zsq(func):def inner(self, n):self.__say(word str(n))return func(self, n)return innerreturn __say_zsq__check_num_zsq__create_say_zsq()def __init__(self, num):self.__result num__check_num_zsq__create_say_zsq(加)def jia(self, n):self.__result n__check_num_zsq__create_say_zsq(减去)def jian(self, n):self.__result - n__check_num_zsq__create_say_zsq(乘以)def cheng(self, n):self.__result * ndef show(self):self.__say(计算的结果是:%d % self.__result)print(计算的结果是:%d % self.__result)c1 Caculator(10)
c1.jia(6)
c1.jian(4)
c1.cheng(5)
c1.show()# ------------------------------------代码10--------------------------------------
import win32com.clientclass Caculator:def __check_num_zsq(func):def inner(self, n):if not isinstance(n, int):raise TypeError(当前这个数据的类型有问题, 应该是一个整型数据)return func(self, n)return innerdef __say(self, word):# 1. 创建一个播报器对象speaker win32com.client.Dispatch(SAPI.SpVoice)# 2. 通过这个播报器对象, 直接, 播放相对应的语音字符串就可以speaker.Speak(word)def __create_say_zsq(word):def __say_zsq(func):def inner(self, n):self.__say(word str(n))return func(self, n)return innerreturn __say_zsq__check_num_zsq__create_say_zsq()def __init__(self, num):self.__result num__check_num_zsq__create_say_zsq(加)def jia(self, n):self.__result n__check_num_zsq__create_say_zsq(减去)def jian(self, n):self.__result - n__check_num_zsq__create_say_zsq(乘以)def cheng(self, n):self.__result * ndef show(self):self.__say(计算的结果是:%d % self.__result)print(计算的结果是:%d % self.__result)propertydef result(self):return self.__resultc1 Caculator(10)
c1.jia(6)
c1.jian(4)
c1.cheng(5)
c1.show()print(c1.result)
c1.result 10# ------------------------------------代码11--------------------------------------
import win32com.clientclass Caculator:def __check_num_zsq(func):def inner(self, n):if not isinstance(n, int):raise TypeError(当前这个数据的类型有问题, 应该是一个整型数据)return func(self, n)return innerdef __say(self, word):# 1. 创建一个播报器对象speaker win32com.client.Dispatch(SAPI.SpVoice)# 2. 通过这个播报器对象, 直接, 播放相对应的语音字符串就可以speaker.Speak(word)def __create_say_zsq(word):def __say_zsq(func):def inner(self, n):self.__say(word str(n))return func(self, n)return innerreturn __say_zsq__check_num_zsq__create_say_zsq()def __init__(self, num):self.__result num__check_num_zsq__create_say_zsq(加)def jia(self, n):self.__result nreturn self__check_num_zsq__create_say_zsq(减去)def jian(self, n):self.__result - nreturn self__check_num_zsq__create_say_zsq(乘以)def cheng(self, n):self.__result * nreturn selfdef show(self):self.__say(计算的结果是:%d % self.__result)print(计算的结果是:%d % self.__result)return selfdef clear(self):self.__result 0return selfpropertydef result(self):return self.__resultc1 Caculator(10)
c1.jia(6).jian(4).cheng(5).show().clear().jia(555).jian(500).show() # 链式编程在方法内部再次返回调用方法的实例本身print(c1.result)# ------------------------------------代码12--------------------------------------import win32com.clientclass Caculator(object):staticmethoddef __say(word):speaker win32com.client.Dispatch(SAPI.SpVoice)speaker.Speak(word)def createSayZSQ(operation):def say(func):def inner(self, v):Caculator.__say(operation str(v))return func(self, v)return innerreturn saydef __check_num(func):def inner(self, v):if not isinstance(v, int):raise TypeError(数据类型有误, 应该是一个整型数据)return func(self, v)return innercreateSayZSQ()__check_numdef __init__(self, v):self.__result vcreateSayZSQ(加)__check_numdef jia(self, n):self.__result nreturn selfcreateSayZSQ(减)__check_numdef jian(self, n):self.__result - nreturn selfcreateSayZSQ(乘)__check_numdef cheng(self, n):self.__result * nreturn selfdef show(self):self.__say(计算结果为:%d % self.__result)print(计算结果为:%d % self.__result)return selfc Caculator(2)
c.jia(6).jian(4).cheng(3).show()补充
使用Python调用微软的语音接口import win32com.clientspeaker win32com.client.Dispatch(SAPI.SpVoice)speaker.Speak(word)