• 【Finish】Python Day 17


    迭代器
    # 生成器进阶
    # 内置函数
    # 55个
    # 带key的 max min filter map sorted zip
    # 匿名函数
    # lambda 参数,参数2:

    # # 用map来处理字符串列表,把列表中的所有人变成sb,比方说alex_sb
    # name = ['alex','wupeiqi','yuanhao','nezha']
    # def func(params):
    # return params+'_sb'
    # test = map(func,name) # 迭代器取值结束之后,就空了,再去print打印在空
    # for j in test:
    # print(j)
    #
    # # 换个方式
    # test = map((lambda s:s+'_sb'),name)
    # print(list(test))

    # # 用filter函数处理数字列表,将列表中的所有的偶数筛选出来
    # integer = [1,22,56,88,99]
    # test= filter(lambda x:x%2==0,integer) # 返回值是一个迭代器
    # test= filter(lambda x:True if x%2 == 0 else False,integer) # lambda可以使用表达式,返回值是一个迭代器
    # print(list(test))


    # # 随意写一个20行以上的文件
    # # 运行程序,先将内容读入到内存中,用列表存储
    # # 接受用户输入页码,每页5条,仅输出当页的内容
    # def readfile(filename):
    # with open(filename,encoding='UTF-8') as f:
    # test = []
    # for i in f.readlines():
    # test.append(i.strip())
    # return test
    #
    # def readfile_by_page(filename,page):
    # filelist = readfile(filename) # 读取文件内容
    # pages,mod= divmod(len(filelist),5) # 求商取余
    # if mod!=0:
    # pages += 1
    # print('the total pages is :'+str(pages))
    #
    # if pages<=page:
    # return filelist[(pages-1)*5:]
    #
    # elif pages>page:
    # return filelist[(page-1)*5:page*5]
    #
    # print(readfile_by_page('file',4))

    # # 如图,每个小字典name对应股票的名字,shares对应多少股,price对应股票的价格
    # portfolio = [
    # {'name':'IBM','shares':100,'price':91.1},
    # {'name': 'AAPL', 'shares': 50, 'price': 543.22},
    # {'name': 'FB', 'shares': 200, 'price': 21.09},
    # {'name': 'HPQ', 'shares': 35, 'price': 31.75},
    # {'name': 'YHOO', 'shares': 45, 'price': 16.35},
    # {'name': 'ACME', 'shares': 75, 'price': 115.65},
    # ]
    # # 计算购买每只股票的总价
    # def func(test):
    # return test['shares']*test['price']
    # print(list(map(func,portfolio)))
    # print(list(map(lambda x:{x['name']:x['price']*x['shares']},portfolio)))
    #
    # # 用filter过滤出,单价大于100的股票有哪些
    # print(list(filter((lambda x:x['price']>100),portfolio)))

    # # 递归函数
    # 了解什么是递归:
    # 在函数中调用自身函数;
    # 最大递归深度默认是997/998——是python从内存角度出发做的限制
    # 设置递归深度:sys.setrecursionlimit(100)

    # 能看懂递归
    # 能知道递归的应用场景
    # 初识递归
    # 算法——二分法
    # 三级菜单——递归实现

    # def story():
    # print('从前有座山')
    # story()
    # print('山里有座庙')
    # story()
    # RecursionError: maximum recursion depth exceeded while calling a Python object
    # 超过了递归的最大深度

    # import sys
    # sys.setrecursionlimit(100) # 可设置递归深度
    # n = 0
    # def story():
    # global n
    # n+=1
    # print('从前有座山')
    # print(n)
    # story()
    # print('山里有座庙')
    # story() # 997

    # 如果递归次数太多,就不适合使用递归函数来解决问题
    # 递归的缺点:占内存
    # 递归的优点:会让代码变简单
    #
    # n = 4 age(4)=40
    # n<4 age(4) = age(n-1)+2
    # def age(n):
    # if n == 4:
    # return 40
    # elif n<4 and n>0:
    # return age(n+1)+2
    # print(age(1))
    #
    # def age(1):
    # if 1 == 4:
    # return 40
    # elif 1<4 and 1>0:
    # return age(2)+2#返回46
    #
    # def age(2):
    # if 2 == 4:
    # return 40
    # elif 2<4 and 2>0:
    # return age(3)+2 #返回44
    #
    # def age(3):
    # if 3 == 4:
    # return 40
    # elif 3<4 and 3>0:
    # return age(4)+2 #返回42
    #
    # def age(4):
    # if 4 == 4:
    # return 40 #返回40
    # elif 3<4 and 3>0:
    # return age(4)+2

    # 算法
    # 我们学习的算法 都是过去时
    # 了解基础的算法才能创造出更好的算法
    # 不是所有的事情都能套用现成的方法解决
    # 有些时候会用到学过的算法只是来解决新问题

    # # 二分查找算法
    # l = [2,3,5,10,15,16,18,26,30,32,35,41,42,43,44,45,46,55,56,66,67,69,72,76,82,83,88]
    # # 二分法查找算法,必须处理有序的列表
    # def find(l,aim,start = 0,end = None):
    # end = len(l) if end is None else end
    # mid_index = (end - start) // 2 + start
    #
    # if start<=end: #判断是否可以找到
    # if l[mid_index]<aim:
    # return find(l,aim,start = mid_index+1,end = end )
    # elif l[mid_index]>aim:
    # return find(l,aim,start = start,end = mid_index-1 )
    # else:
    # return mid_index
    # else:
    # return 'can not find it '
    #
    # print(find(l,66))
  • 相关阅读:
    AngularJS 最常用的八种功能
    angularJs自定义模块
    angularJs 购物车模型
    angularJs-未加载完成的页面显示混乱ng-bind
    angularJs-脏检查
    angularJs-控制器
    【转载更新】Linux工具之SED 2.应用实例
    【转载更新】Linux工具之SED 1.基础知识
    【转载更新】Linux工具之AWK 4.实例
    【转载更新】Linux工具之AWK 3.高级知识
  • 原文地址:https://www.cnblogs.com/wonderful0714/p/9537736.html
Copyright © 2020-2023  润新知