面向过程向面向对象的思想迁移:
以前面向过程编写代码:首先考虑实现什么功能,然后调用什么函数,最后按部就班的实现需求
以后面向对象编写代码:首先考虑有什么样的实体去实现什么样的功能然后分装实体的属性及功能
通过实体实现对应功能
面向过程和面向对象的区别:
面向过程与面向对象都可以实现模块化编程代买也可以重用,但是面向对象的模块化更深,数据更封闭更安全现象对象的思维方式更加贴近现实生活,更容易解决大型的复杂业务逻辑
从前期开发角度来说,面向对象比面向过程更复杂,但从维护或扩展的角度来说,面向对象远比面向过程简单面向过程的代码执行效率更高
重写二分法查找:按照面向对象的思想
class Half_Find():
def __init__(self, list1, num1):
self.list1 = list1
self.num1 = num1
def h_find(self):
if self.list1 == 0 or self.num1 == 0:
return '数据不能为空'
self.list1 = [int(self.list1[i]) for i in range(len(self.list1))]
self.list1.sort()
i = 0
j = len(self.list1) - 1
while i <= j:
mid = (i + j) // 2
if self.list1[mid] == self.num1:
return '找到了', self.num1
else:
if self.num1 < self.list1[mid]:
j = mid - 1
else:
i = mid + 1
if i > j:
return '未找到'
if __name__ == '__main__':
li = list(input('请输入序列:'))
num = int(input('请输入需要查找数字:'))
find1 = Half_Find(li, num)
print(find1.h_find())