博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python学习笔记(八)
阅读量:5882 次
发布时间:2019-06-19

本文共 2006 字,大约阅读时间需要 6 分钟。

Python学习笔记(八):

  1. 复习回顾
  2. 递归函数
  3. 内置函数

1. 复习回顾

1. 深浅拷贝

2. 集合

应用:

  1. 去重
  2. 关系操作:交集,并集,差集,对称差集
    操作:
  3. 定义
    s1 = set('alvin')
  4. 添加
    s.add()
    s.update()
  5. 删除
    s.remove()
    关系操作:
  6. in , not in
  7. == , !=
  8. 超级,子集
  9. 交集
  10. 并集
  11. 差集
  12. 对称差集

3. 函数

  1. 特性:代码重用、保持一致性、可扩展性
  2. 函数的定义
  3. 函数的参数:必备参数、关键字参数、默认参数、不定长参数
  4. 函数的返回值
  5. 作用域:LEGB

4. 补充:高阶函数

高阶函数是至少满足下列一个条件的函数:

  1. 接受一个或多个函数作为输入
  2. 输出一个函数

代码示例:

def f(n):    return n*n    print(f(4))         # 结果:16def foo(a,b,func):    return func(a) + func(b)# 函数名可以进行赋值# 函数名可以作为参数print(foo(1,2,f))   # 结果:5

2. 递归函数

递归的特性:

  1. 自己调用自己
  2. 有一个结束条件
  3. 递归的效率比较低
  4. 递归可以实现的循环一定可以解决

代码示例:

# 阶乘def fact(n):    if n == 1:        return 1    else:        return n*fact(n-1)print(fact(5))# 菲波那切数列-后面一个数字等于前面两个数相加def fei(n):    if n == 1:        return 0    if n == 2:        return 1    else:        return fei(n-1)+fei(n-2)print(fei(5))

3. 内置函数

内置函数

几个比较重要的内置函数:

  1. filter(function, sequence)

代码示例:

str = ['a', 'b','c', 'd'] def fun1(s):    if s != 'a':        return s ret = filter(fun1, str)print(list(ret))# ret是一个迭代器对象
  • 对sequence中的item依次执行function(item),将执行结果为True的item做成一个filter object的迭代器返回。可以看作是过滤函数
  1. map(function, sequence)

代码示例:

str = [1, 2,'a', 'b']def fun2(s):    return s + "alvin" ret = map(fun2, str)print(ret)      #  map object的迭代器print(list(ret))#  ['aalvin', 'balvin', 'calvin', 'dalvin']
  • 对sequence中的item依次执行function(item),将执行结果组成一个map object迭代器返回.
    map也支持多个sequence,这就要求function也支持相应数量的参数输入:
ef add(x,y):    return x+yprint (list(map(add, range(10), range(10))))##[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
  1. reduce(function, sequence, starting_value)  

代码示例:

from functools import reduce def add1(x,y):    return x + y print (reduce(add1, range(1, 101)))## 4950 (注:1+2+...+99)print (reduce(add1, range(1, 101), 20))## 4970 (注:1+2+...+99+20)
  • 对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用
  1. lambda
#普通函数def add(a,b):    return a + bprint add(2,3)#匿名函数add = lambda a,b : a + bprint add(2,3)#========输出===========55
  • 匿名函数的命名规则,用lamdba 关键字标识,冒号(:)左侧表示函数接收的参数(a,b) ,冒号(:)右侧表示函数的返回值(a+b)。
  • 因为lamdba在创建时不需要命名,所以,叫匿名函数

转载于:https://www.cnblogs.com/ryomahan/p/7549873.html

你可能感兴趣的文章
c语言打开alist文件,C语言 文件的打开与关闭详解及示例代码
查看>>
c语言 中的共用体和结构体如何联合定义,结构体(Struct)、联合体(Union)和位域
查看>>
SDL如何嵌入到QT中?!
查看>>
P1026 统计单词个数
查看>>
[js高手之路] html5 canvas系列教程 - 状态详解(save与restore)
查看>>
poi excel 常用api
查看>>
AD提高动态的方法(附SNR计算)
查看>>
[转]轻松实现可伸缩性,容错性,和负载平衡的大规模多人在线系统
查看>>
五 数组
查看>>
也谈跨域数据交互解决方案
查看>>
EntityFramework中使用Include可能带来的问题
查看>>
面试题28:字符串的排列
查看>>
css important
查看>>
WPF 实现窗体拖动
查看>>
来自维基百科程序员Brandon Harris
查看>>
NULL不是数值
查看>>
CentOS 5 全功能WWW服务器搭建全教程
查看>>
scala111
查看>>
模块化服务规范——OSGI
查看>>
劣质代码评析——猜数字问题(上)
查看>>