Holmes-98

一、二分法

list01 = [-1,0,4,7,9,12,26,37,44,54,]
find_num = 43
def func(find_num,new_list):
    print(new_list)
    if len(new_list) == 0:  # 
        print(\'不在搜索范围内\')
        return
    mid_index = len(new_list) // 2  # 得到列表中间索引
    if find_num < new_list[mid_index]:
        new_list = new_list[:mid_index]  # 得到列表开头到中间值的新列表
        func(find_num, new_list)  # 重新调用自己
    elif find_num > new_list[mid_index]:
        new_list = new_list[mid_index + 1:]  # 得到列表中间值到末尾的新列表
        func(find_num, new_list)
    else:
        print(\'find it !\')

func(find_num,list01)
list00=[-1,0,2,6,54,33,90,68]
list00.sort()  # 有序排列,默认从小到大
print(list00)

>>>>[-1, 0, 2, 6, 33, 54, 68, 90]

二、面向过程的编程思想

  核心是“过程”二字,过程即流程,指的是做事的步骤:1XXXX,2XXXXX3.XXXXX

  基于该思想编写程序就好比在设计一条流水线。

  优点:复杂的问题流程化,进而简单化。

  缺点:扩展性非常差

三、函数式编程

  将计算机的运算视为数学意义上的运算,比起面向过程,函数式更加注重的是执行结果。

 四、内置函数  map   filter  reduce

l = [1,34,22,67,54,32,72]
new_l = (val+100 for val in l)
print(new_l)  # 得到的是一个迭代器
res = new_l.__next__()
res1 = new_l.__next__()
print(res)
print(res1)
>><generator object <genexpr> at 0x00000145B37B29E8>
>>101
>>134

# map的应用
res2 = map(lambda val:val+100,l)
print(res2)
AAA = res2.__next__()
BBB = res2.__next__()
print(AAA)
print(BBB)
>><map object at 0x00000145B37BAA58>
>>101
>>134
l = [\'asd_aaa\',\'zxc_aaa\',\'gsd\',\'vxc\']
res = filter(lambda name: name.endwith(\'aaa\'),l)
print(res)
>><filter object at 0x0000022A4544AA58>
l = [1,34,22,67,54,32,72]
from functools import reduce
res = reduce(lambda x,y:x+y,l,)
print(res)
>>282

 五、内置函数

 

abs     # 求绝对值

all      #   被bool循环 ,如果是True 返回True,是Flase,返回Flase

any      #  被bool循环 只要有一个True就返回True

ascii    # 返回ASCII对应的字符

bin    # 返回二进制

bool    # 判断一个值是True 还是False      bool(0)     >>>>  False

bytearray    #   把bytes变成bytearray,可修改的数组

bytes  

callable    # 判断一个对象是否可调用

chr      # 返回ASCII码里面对应的字符

dict      # 生成一个字典

dir      #  发挥对象可调用的属性

divmod    #  返回列表的商和余数

enumerate   # 返回列表的索引和元素

eval       #  可以把字符串类型的list\dict\tuple,再转换成其原有的数据类型

exec       #  把字符串的代码,进行解义并执行

exit      # 退出程序

filter      # 

float      #

frozenset    # 把一个集合变成不可修改的  (冻结)

global      # 打印全局作用域内的值

local       #  打印局部变量

hex      # 十六进制

oct      # 八进制

ord      # 返回ASCII码字符对应的十进制数

iter      # 把一个数据结构变成一个迭代器

next      #

max      # 最大值

min      # 最小值

round      # 把小数四舍五入

sum      # 求和

zip      # 把两个或者多个列表拼成一个

>>> a=[1,3,4,4]
>>> b=[\'as\',\'fsa\',\'da\']
>>> list(zip(a,b))
[(1, \'as\'), (3, \'fsa\'), (4, \'da\')]

 

分类:

技术点:

相关文章:

  • 2021-12-23
  • 2021-09-11
  • 2021-08-27
  • 2021-05-15
  • 2021-10-24
  • 2021-12-22
  • 2022-02-27
  • 2021-06-11
猜你喜欢
  • 2021-11-22
  • 2018-10-10
  • 2018-08-15
  • 2021-09-17
  • 2021-07-05
  • 2021-06-29
  • 2021-12-23
相关资源
相似解决方案