python 3.x 学习笔记4(函数)

1.编程方式分:面向对象、面向过程、函数式编

 

2.区分
面向对象----》类----》class
面向过程----》过程----》def
函数式编程----》函数----》def

 

3.编程语言中函数的定义:

函数是逻辑结构化和过程化的一种编程方法

 

4.过程是没有返回值的函数

 

5.使用函数的优点:

1)代码可重复使用
2)代码可保持一致性
3)可扩展性

 

6.

当一个函数/过程没有使用return显示的定义返回值时,python解释器会隐式的返回None,所以在python中即便是过程也可以算作函数

 

7.返回值
返回值的数等于0,返回None
返回值的数等于1,返回object
返回值的数大于1,返回tuple

8.参数

1)形参和实参形参:形式参数,不是实际存在的,是虚拟变量 。在定义函数体的时候使用形参,目的是在函数 调用时接受参数(形参参个数、类型与实参一一对应)

实参:实际参数,调用函数时传给函数的参数,可以是常量、变量、表达式、函数,传给形参

2)位置参数和关键字参数

标准调用:实参与形参位置一一对应;

关键字调用:位置无需固定

3)默认参数
特点:调用函数的时候,默认参数非必须传递

4)参数组

*args 接收n个位置参数,转换成元组的方式

**kwargs 接收 n个关键字参数,转换成字典的方式

 

9.局部变量

只在局部范围内发生作用,即只在函数内部发生作用

 

10.全局变量

全局变量作用域是整个程序,要把局部变量变成全局变量用global,但是不建议在函数里使用,可能会出现很严重bug

 

11.局部变量除了整数、字符串不能影响全局变量,像字典、元组、列表、类都可以更改,并影响到全局变量

 

12.递归

如果一个函数在内部调用自身,这个函数就是递归函数

 

13.递归特性

1)必须有一个明确的结束条件

2)每次进入更深一层递归时,问题规模相比上次递归都应有所减少

3)递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出

 

14.高阶函数

变量可以指向函数,函数的参数能接收变量,那么一个函数可以接收另一个函数作为参数,这种 函数就称之为高阶函数。

 

15.函数详解:

http://www.cnblogs.com/alex3714/articles/5740985.html

原文地址:https://www.cnblogs.com/hsj-jingyu/p/8325974.html