把之前学习的做一个小结。之前看二分查找法,只能是似而非地看懂大概。现在用这么多天的知识积累已经可以自己写了。
而且在算法书的基础上,把需要找的数字做一个人机互动操作。
另外,初步接触到了 __name__=="__main__"这块,也只初步了解了一个大概。在调试的时候,发现有这个语句就不会上下两段代码一起执行。原理现在尚不清楚,查了一下资料,似是而非,看后面能否深入了解。
另外,今天对return和print进行了比较详细的了解。我的理解是,语句中一旦有return,类似Break,后面的程序就不会再执行了。而print语句后面还会继续执行。这应该是最大的区别。
这是我写的第一段算法程序,在原来书本的基础上加入了很多中文人机互动,没想到一点点C++基础的我居然可以写算法程序。感谢这段时间来努力的自己!
1 #!/usr/bin/env python 2 # -*- coding: UTF-8 -*- 3 # Author:show530 4 5 6 def BinarySearch(list, item): 7 low=0 8 high=len(list)-1 9 if item in list: 10 while True: 11 mid=int((low+high)/2) 12 if list[mid]==item: 13 print(str(item)+"在数组里面的第"+str(mid)+"个位置") 14 return 15 elif list[mid]<item: 16 low=mid+1 17 elif list[mid]>item: 18 high=mid-1 19 else: 20 print("没有这个数字") 21 return 22 23 24 if __name__ == "__main__": 25 arr = [1, 6, 9, 15, 26, 38, 49, 57, 63, 77, 81, 93] 26 while True: 27 key = input("请输入你要查找的数字:") 28 if key == " ": 29 print("谢谢使用!") 30 break 31 else: 32 BinarySearch(arr, int(key))