python学习笔记DAY07(编程思想)

python编程思想初识

编程思想本身是不依赖与任何语言的,只不过有些编程语言为了遵从某种编程思想,对自己的语言做了特殊的设计。

编程思想也可以成为编程范式,而范式是多种多样的。

面向过程的编程思想

  • 面向过程:这个编程范式是以过程为核心的。(注重做事的步骤:先做什么--再做什么--之后做什么)
    • 优点:复杂的事情流程化,进而简单化
    • 缺点:扩展性较差
  • 应用场景分析
    • 不是所有软件都需要频繁更迭,比如写脚本
    • 即使需要频繁更迭,也不是所有功能都要频繁更迭

备注:所有编程思想都是建立在面向过程思想的基础之上的。

函数编程思想

函数编程:它并不是用函数(def)编程那么简单,而是将计算机的运算视为数学意义上的运算,

过程与函数对比:函数式更加注重执行的结果,而不是过程

函数式代表语言:Haskell Erlang 等

备注:python并不是函数式的编程语言,但是仍然为我们提供了很多函数式编好的特性,如:lambda、map、reduce、filter

  • 匿名函数:lambda

定义方式:lambda x,y : x+y

匿名函数关键字 需要参数 返回值

调用:res = (lambda x,y : x+y)(1,2) 但是实际上都不会这么调用

    • 特点:因为匿名函数没有名字,所以它在不被调用的时候内存中不会有任何空间。所以,通常用于临时调用一次的场景,基本都是匿名函数与其它函数配合使用
  • 取最大值:

    • max([3,52,62,78,12,45,10,42]):max本身就是一个迭代器,每次从列表中取出一个值,与取出的下一个值做比较,留下较大的值继续与下一个值比较。直到列表结束。

    • 实例:

      # 最简单用法:res = max(12,52,6,12,45,78,2)
      # 找出年龄最大的人的名字
      age = {"nida":18,"yaoyao":22,"lili":17}
      res = max(age,key=lambda k:age[k])
      # 被迭代对象放置在括号内左侧,max迭代器每次循环从匿名函数那里拿到返回值,
      # 然后一一进行对比留下较大的值,循环往复直到被迭代对象的值取完
      print(res)
      
  • 取最小值:min

    • 实例

      # 最简单用法:res = min(12,52,6,12,45,78,2)
      # 找出年龄最小的人的名字
      age = {"nida":18,"yaoyao":22,"lili":17}
      res = min(age,key=lambda k:age[k])
      # 被迭代对象放置在括号内左侧,max迭代器每次循环从匿名函数那里拿到返回值,
      # 然后一一进行对比留下较小的值
      print(res)
      
  • 排序:sorted

    • 实例

      # 最简单用法:res = sorted([12,52,6,12,45,78,2])
      # 按年龄对人员进行排序
      age = {"nida":18,"yaoyao":22,"lili":17}
      res = sorted(age,key=lambda k:age[k])   # 默认从小到大排列
      res1 = sorted(age,key=lambda k:age[k],reverse=True)  # reverse为真时,从大倒小排列
      # 被迭代对象放置在括号内左侧,max迭代器每次循环从匿名函数那里拿到返回值,进行排序
      
  • 映射:map(了解,它能做的生成式都可以做)

    • 实例

      # 给每个名字加上"_mm"的后缀
      s = {"nida","yaoyao","lili"}
      res = map(lambda name:name+"_mm",s) # 用map映射写法 得到一个map(也是生成器)
      # s 为可迭代对象,每次迭代的值当参数传入匿名函数,拿到返回值。直到可迭代对象取值完毕
      res1 =(x+"_mm" for x in s)  # (回顾)用生成式的写法 得到一个生成器
      
上一篇:零基础入门学习JAVA课堂笔记 ——DAY07


下一篇:Linux系统编程Day07