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) # (回顾)用生成式的写法 得到一个生成器
-