python基础笔二

python 基础笔记二 函数

  1. 函数传参
    1. 位置传参
    2. 默认传参
    3. 关键字传参
    4. 收集参数
      “*” 将参数收集为元组
      “**” 将参数收集为集合
  2. 所有的函数都有返回值。默认为 None
  3. 可以使用元组或列表一次返回多个值。
  4. 全局变量和局部变量
    函数内试图直接修改全局变量,Python会创建一个新的局部变量代替,名字与全局变量相同。而真正的全局变量不变
    局部变量不可在作用域函数外被访问。python在运行函数时,利用栈(Stack)进行存储,当执行完函数后,函数相关的值将会被全部删除。
  5. global 关键字
    在函数内部修改全局变量
  6. 闭包
    如果在一个内部函数里,对外部函数的变量进行引用,则内部函数被认为是一个闭包。
    py
    >>> def funX(x):
    ... def funY(y):
    ... return x*y
    ... return funY
    ...
    >>> i = funX(8)
    >>> i(5)
    40
    >>> funX(5)(8)
    40

    x被称为自有变量,funY被称为闭包,x是闭包携带的自有变量。当funX被回收后,x因为被闭包引用所以依旧存在。
    闭包中不可以修改外部函数的变量
  7. nonlocal 关键字
    在闭包中修改外部函数的变量值
    py
    >>> def fun1():
    ... x=5
    ... def fun2():
    ... nonlocal x
    ... x *= x
    ... return x
    ... return fun2
    ...
    >>> fun1()()
    25
  8. 匿名函数 lambda
    py
    >>> def fun(x,y):
    ... return x+y
    ...
    >>> fun(1,2)
    3
    >>> fun = lambda x,y:x+y
    >>> fun(3,4)
    7
  9. filter(fun or none,iterable) 过滤器
    py
    >>> list(map(lambda x:x%2,range(10)))
    [1, 3, 5, 7, 9]

    filter的函数可以为none,none时直接返回可迭代对象中所有为true的值筛选出来
    py3中返回值是一个filter对象,可以使用list()转换
    py2中返回值是一个list
  10. map(fun,iterable)
    py
    >>> list(map(lambda x:x*2,range(10)))
    [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

    map的函数不可以为none,必须存在。
  11. 可迭代对象和迭代器
    常见的序列(列表,元组,字符串)和字典等被称为可迭代对象
    迭代器是通过对可迭代对象使用 iter() 方法获得
    py
    >>> name = [1,2,3,4]
    >>> it = iter(name)
    >>> type(it)
    <class 'list_iterator'>
    >>> type(name)
    <class 'list'>
    >>> next(name)
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    TypeError: 'list' object is not an iterator
    >>> next(it)
    1
    >>> next(it)
    2

    上面例子可以看出迭代器的类型为 list_iterator,而可迭代对象的类型为 list
    可迭代对象并不具备 next() 方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值