• 三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数


    一、三元表达式

    表达式一  if条件  表达式二

    name=input('姓名>>: ')
    res='SB' if name == 'alex' else 'NB'
    print(res)

    二 生成器表达式

    #2、示例:生一筐鸡蛋变成给你一只老母鸡,用的时候就下蛋,这也是生成器的特性
    >>> chicken=('鸡蛋%s' %i for i in range(5))
    >>> chicken
    <generator object <genexpr> at 0x10143f200>
    >>> next(chicken)
    '鸡蛋0'
    >>> list(chicken) #因chicken可迭代,因而可以转成列表
    ['鸡蛋1', '鸡蛋2', '鸡蛋3', '鸡蛋4',]

    #3、优点:省内存,一次只产生一个值在内存中

    二、递归与二分法

    递归的定义

    #递归调用是函数嵌套调用的一种特殊形式,函数在调用时,直接或间接调用了自身,就是递归调用

    递归调用应该分为两个明确的阶段:递推,回溯

    1、递归调用应该包含两个明确的阶段:回溯,递推
      回溯就是从外向里一层一层递归调用下去,
          回溯阶段必须要有一个明确地结束条件,每进入下一次递归时,问题的规模都应该有所减少(否则,单纯地重复调用自身是毫无意义的)

      递推就是从里向外一层一层结束递归

    2、二分法

    l=[1,2,10,30,33,99,101,200,301,402]

    def search(num,l,start=0,stop=len(l)-1):
      if start <= stop:
          mid=start+(stop-start)//2
          print('start:[%s] stop:[%s] mid:[%s] mid_val:[%s]' %(start,stop,mid,l[mid]))
          if num > l[mid]:
              start=mid+1
          elif num < l[mid]:
              stop=mid-1
          else:
              print('find it',mid)
              return
          search(num,l,start,stop)
      else: #如果stop > start则意味着列表实际上已经全部切完,即切为空
          print('not exists')
          return

    search(301,l)

    3、匿名函数

    匿名就是没有名字
    def func(x,y,z=1):
      return x+y+z
    #有名函数与匿名函数的对比
    有名函数:循环使用,保存了名字,通过名字就可以重复引用函数功能

    匿名函数:一次性使用,随时随时定义

    应用:max,min,sorted,map,reduce,filter
    每天逼着自己写点东西,终有一天会为自己的变化感动的。这是一个潜移默化的过程,每天坚持编编故事,自己不知不觉就会拥有故事人物的特质的。 Explicit is better than implicit.(清楚优于含糊)
  • 相关阅读:
    最全的静态网站生成器(开源项目)
    移动互联网流量变现模式调研问卷
    公众平台商户接入(微信支付)功能申请教程
    微信支付全面开放
    百度天气预报接口
    微信公众平台开发(83) 生成带参数二维码
    微信支付接口申请指南
    微信自媒体账号涉违规大规模被封
    php大文件上传解决方案支持分片断点上传
    html5大文件上传解决方案(500M以上)
  • 原文地址:https://www.cnblogs.com/kylin5201314/p/13509376.html
Copyright © 2020-2023  润新知