python篇3_函数

1.写法:

def funcName(param):【def关键字+函数名+括号参数+冒号】

2. 几种不同的参数的定义和使用

a. 关键字参数比如我定义了函数say(name,word),在调用此函数的时候,say(word = 'hello',name = 'Damon'),这样准确的对应实参和形参,这样可以避免在参数较多的时候将参数混淆,参数顺序也不怕颠倒。

b. 默认参数:定义函数的时候,指定参数的默认值:say(name = 'Damon',word = 'hello'),区别关键字参数

c. 收集参数定义函数的时候,不知道函数具体有几个参数:def myFunc(*params);在形参前面加上一个*,形参变成一个可以包含多个不同元素的元组,通过对元组的访问获取具体的参数;

3.函数生命周期

a. global关键字:对于全局变量,python中如果想要更改全局变量param,需要对本地的变量使用关键字global进行声明【因为此时本地变量和全局变量名字相同】:global param,然后在来更改;ps:访问全局变量不需要声明

b 函数嵌套在函数里面再重新定义函数,被定义的函数只能在父函数里面被调用,这个是java没有的,要区别和函数调用的不同

c. lambda表达式

   i. 写法:关键字 + 形参+冒号+返回值    eg:lambda x : x % 2 【对传入的参数模2取余】

   ii.适用场合:一些适用次数较少的函数,建议使用lambda表达式

   iii.可以对lambda表达式赋值 eg: func_add = lambda x : x+1

4.两个重要内置函数介绍:

filter()

filter(...)
    filter( function or None, sequence) -> list, tuple, or string【返回值】
    
    Return those items of sequence for which function(item) is true.  If
    function is None, return the items that are true.  If sequence is a tuple

    or string, return the same type, else return a list.

举例:filter(lambda x : x % 2,range(10)) ,【过滤出0到9之间的奇数】

理解:把sequence里面的item通过function运算,返回结果为True的sequence中的item,即true是返回依据

map()

 map(function, sequence[, sequence, ...]) -> list
    
    Return a list of the results of applying the function to the items of
    the argument sequence(s).  If more than one sequence is given, the
    function is called with an argument list consisting of the corresponding
    item of each sequence, substituting None for missing values when not all
    sequences have the same length.  If the function is None, return a list of
    the items of the sequence (or a list of tuples if more than one sequence).

举例:map(lambda x : x*x,range(10))【对0到9之间的数字进行自乘】

理解:sequence作为集合A,函数关系是function,返回集合B

5.递归和迭代

a.递归:递归就是函数自己调用自己实现循环,要有返回条件,不然就死循环;采用的分治,把问题划分到最小单元,最小单元触发返回条件,再逐层返回到顶层,典型的递归是二分查找法;

b.迭代:迭代就是函数一段代码被反复执行实现循环,特点是循环中参与运算的变量也是保存结果的变量








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值