打卡我的第四篇博客
这章的内容是——函数
说起来,这一章理解起来有点难度
ps:(掉了好几根头发)(ಥ_ಥ)
还是和C语言进行对比
简单的函数创建和调用和C语言大同小异
较为明显感受来说,Python的函数更为灵活
曾记得不知道在哪里看到的一句话
“灵活既强大”表示赞同
第一节
1.函数的创建
2.函数参数
3.返回值
这三点是最基本的,与C语言差别不大,简单了解后便能理解,其中返回值值得注意的是,在Python中可以返回不同类型的值,甚至可以返回多个值。
第二节
①形参和实参
②关键词参数
③默认参数
④收集参数
值得一提的是②③④。
关键词参数能让我们在定义参数时更加准确,防止一些特殊错误。
默认参数不用带参数去调用函数
收集参数也叫可变参数,较为灵活,中间遇到一个(*)号,有打包和解包的作用
第三节
1.函数和过程
2.函数变量的作用域
在很多编程语言中,函数和过程是分开的,但是Python来说,只有函数没有过程,并且所有的函数都有返回值。
作用域来说,无论是在C语言还是Python中都是一个值得注意的问题,很多人分不清局部变量和全局变量,导致出现许多错误
第四节
①.内嵌函数
②.闭包
③.lambda表达式
内嵌函数和C语言一样,区别不大。
闭包,这对于我来说是一个新的概念,在我理解下来,差不多也算是一种内嵌函数。如果在一个内部函数里,对外部作用域的变量进行引用,则这个内部函数就是一个闭包。
lambda表达式,可以简化一些函数,使用方法是
在冒号(:)左边放原函数,可以有多个参数,用逗号(,)隔开即可;冒号右边是返回值。
最后介绍一个东西,“递归”
简单来说递归就是一个函数调用自身的一个行为。在函数内部可以调用所有可见的函数,也包括自己。但是这个方法一旦用不好,就会得不偿失了。有句话说得好,“普通程序员用迭代,天才程序员用递归”,但是不是说会用递归的程序员就是天才,递归的妙处在于简洁和精炼,但是比较消耗时间和空间,一件东西存在必有它的道理,比较平衡过后选择使用递归还是循环。
最后分享几个关键字和BIF
*global 可以在函数里面修改全局变量
*filter()
简单来说: filter 有两个参数。第一个参数可以是一一个函数也可以是None,如果是一个函数的话,则将第二个可迭代数据里的每一个元素作为函数的参数进行计算,把返回True的值筛选出来;如果第一个参数为None, 则直接将第二个参数中为True的值筛选出来。
*map()
map()这个内置函数也有俩个参数,仍然是一个函数和一个可迭代序列,将序列的每一个元素作为函数的参数进行运算加工,直到可迭代序列每个元素都加工完毕,返回所有加工后的元素构成新序列。