python学习(5)写一个二分算法的程序

把之前学习的做一个小结。之前看二分查找法,只能是似而非地看懂大概。现在用这么多天的知识积累已经可以自己写了。

而且在算法书的基础上,把需要找的数字做一个人机互动操作。

另外,初步接触到了 __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))

 

posted @ 2018-03-10 18:01  洪韬  阅读(...)  评论(...编辑  收藏