2023.1.11python课程学习——面向对象相关作业
作业:
将二分法查找按照面向对象的思想重写,要求:输入一个整数列表,进行二分法查找
class Homework():
def __init__(self, list1):
self.list1 = list1
def math_question(self):
if len(self.list1) == 0:
return '数据不能为空!'
self.list1 = list(self.list1)
self.list1 = [int(self.list1[i]) for i in range(len(self.list1))]
self.list1.sort()
n = int(input('请输入查找元素:'))
i = 0
j = len(self.list1) - 1
while i <= j:
mid = (i + j) // 2
if self.list1[mid] == n:
return '找到了!'
break
else:
if n < self.list1[mid]:
j = mid - 1 # 向左折半
else:
i = mid + 1 # 向右折半
if i > j:
return '未找到'
if __name__ == '__main__':
list2 = input('请输入要查找的列表:')
homework1 = Homework(list2)
print(homework1.math_question())