Python函数(定义、参数、递归)-1
一、函数的定义
- 定义函数,def 、缩进、:, 使用def语句,一次写出函数名、括号、括号中的参数和冒号:,然后在缩进块中编写函数,函数的返回值用return语句返回。
- 如果没有return语句,函数执行后也会返回结果,结果为None,return None可以简写为return。
- 使用pass的代替未写完的语句,否则会出错。
- 参数的检查,使用isinstance()内置函数来检查数据类型。
- 返回多个值,但是实际是返回任然是单一值,返回的是一个tuple,但是在语法上,返回的tuple可以省略括号,而多个变量可以同时接受一个tuple,按照位置赋给对应的值。
二、函数参数
- 设置默认参数,必选参数在前,默认参数在后。
- 当多个参数时,把变化大的参数放在前面,变化小的参数放在后面。变化小的参数可以作为默认参数。
- 定义默认参数的时候必须定义不变对象
- 可变参数,定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号。在参数内部,参数numbers,接收到的是一个tuple。如果本身是一个list,可以在传入的时候,变量名前加 *号,使得list中的元素作为可变参数传入。
- 关键字参数, 关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在内部自动组建为一个dict。在定义函数参数最后加上** kw。如果本身就是字典dict,方法同可变参数一样,变量名前加**
- 命名关键字参数,如果要限制关键字参数的名字,就要用关键字参数,例如def person(name, age, *, city, job), 如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不在需要一个特殊的分隔符 *了def person(name, age, *args, city, job), 同时命名关键字参数必须传入参数名,这和位置参数不同,如果没有传入参数,调用将报错。
- 参数组合, 在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
三、递归函数
- 使用递归函数的优点是逻辑简单清晰,但缺点是过深的调用会导致栈的溢出。
- 针对尾递归优化的语言可以通过尾递归防止栈溢出,尾递归实际上和循环是等价的,没有循环语句的编程语言只能够通过尾递归实现循环。
- Python标准的解释器没有针对尾递归做优化,任何递归函数都存在栈溢出的现象。
作者:睿晞
身处这个阶段的时候,一定要好好珍惜,这是我们唯一能做的,求学,钻研,为人,处事,交友……无一不是如此。
劝君莫惜金缕衣,劝君惜取少年时。花开堪折直须折,莫待无花空折枝。
曾有一个业界大牛说过这样一段话,送给大家:
“华人在计算机视觉领域的研究水平越来越高,这是非常振奋人心的事。我们中国错过了工业革命,错过了电气革命,信息革命也只是跟随状态。但人工智能的革命,我们跟世界上的领先国家是并肩往前跑的。能身处这个时代浪潮之中,做一番伟大的事业,经常激动的夜不能寐。”
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.