递归函数
""" Author:Cairo """ #递归 # def jiechen(n): # ''' # :param :递归是一个自己调用自己的函数,必须有一个明确的出口,不然程序会报错 # :return n + jiechen(n - 1): 这里就是函数自己调用自己的执行代码,如果n!=1的话,就会一直执行,直到n == 1 为止 # :attention:递归函数只能自己调用自己998次,如果超过就一样报错,它不是死循环,要注意哦! # ''' # if n == 1: # return 1 # else: # return n + jiechen(n - 1) # print(jiechen(998)) # 练习:根据给定的姓名,在列表中查询姓名的序号(0-68)。 lst=['邢佳栋','李学庆','高昊','潘粤明','戴军','薛之谦','贾宏声','于波','李连杰','王斑','蓝雨','刘恩佑','任泉','李光洁','姜文','黑龙','张殿菲','邓超','张杰','杨坤','沙溢','李茂','黄磊','于小伟','刘冠翔','秦俊杰','张琳','陈坤','黄觉','邵峰','陈旭','马天宇','杨子','邓安奇','赵鸿飞','马可','黄海波','黄志忠','李晨','后弦','王挺','何炅','朱亚文','胡军','许亚军','张涵予','贾乃亮','陆虎','印小天','于和伟','田亮','夏雨','李亚鹏','胡兵','王睿','保剑锋','于震','苏醒','胡夏','张丰毅','刘翔','李玉刚','林依轮','袁弘','朱雨辰','丁志诚','黄征','张子健','许嵩'] def get_index(lst, str, lower, upper): ''' :param lst: 名字列表 :param str: 输入判断的名字 :param lower: 开始的位置 :param upper: 结束的位置 :return: :middle:等于开始的位置与结束的位置 // 2 整除以2 得到中间的位置 :记录一下循环体:如果输入的名字在于列表一半的的截取内可以找到:就走下一行再次调用自己直到找到这个名字。 如果在前面截取的那一半的列表找不到这个名字的话,就走else:这样的话调用的那个自己的时候参数的开始值就得等于一半+1开始到最后 ''' if lower == upper: return upper else: middle = (lower + upper) // 2 if str in lst[lower:middle + 1]: # 注意:切片操作的终止位置是截取不到的,所以要+1才能正常判断。 return get_index(lst, str, lower, middle) else: return get_index(lst, str, middle + 1, upper) print(get_index(lst, input('请输入姓名:'), 0, len(lst)))
以上内容作为课堂笔记,如有雷同,请联系于我