零基础学习python自定义函数实现二

北京荨麻疹的最好医院 https://m-mip.39.net/disease/mip_10490515.html

了解自定义函数def

在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号,然后在缩进块中编写函数体,函数的返回值用

return语句返回。下面自定义一个求绝对值的my_abs函数:

小试牛刀-自定义函数实现二分查找算法

假设要在电话本里面找一个L开头的人,可以从头开始翻页,直到找到L开头的名字。但一般情况不会这么做,而是从中间翻开一页,然后看看L在翻开页的前面还是后面,然后继续查找,这种情况其实就是使用二分查找算法来解决问题了。

下面我们试试,在一个列表中查找一个元素,然后返回它在列表(前提是有序的列表)中的位置。比如my_list=[12,15,23,36,41,57,62,70,82,94]列表中有10个元素,我想查找82在第几位。根据二分算法,查找中间的数,即是第0位+第9位除以2,如果不是整数,那么系统自动向下取整,即第4位,第4位是41比82小,那么要在后面57,62,70,82,94中查找,第5位+第9位除以2,即第7位,第7位是70比82小,那么继续再后面82,90范围内查找,重复前面的方法,即可找到82,最后返回82的位置。运行情况如下,返回值为8,即需要查找的数为my_list[8]。

defbinary_search(list,item):#定义函数,list为查找的列表,item为查找的元素

low=0#锁定查找范围

high=len(list)-1#锁定查找范围

whilelow=high:#只要范围没有缩小到只有一个元素就继续查找

mid=(low+high)/2#计算中间元素位置

guess=list[mid]#得到中间元素

ifguess==item:#即找到想要的元素

returnmid#返回中间元素的位置

elifguessitem:#如果中间元素大于想要元素

high=mid-1#向前半部分查找

else:#如果中间元素小于想要元素

low=mid+1#向后半部分查找

my_list=[12,15,23,36,41,57,62,70,82,94]#查找的具体列表

printbinary_search(my_list,82)#查找元素82的位置

调试完成后是不是很有成就感呢




转载请注明:http://www.aierlanlan.com/cyrz/4778.html