首页 > 代码库 > Python 基础 - Day 2 Learning Note - Function 函数
Python 基础 - Day 2 Learning Note - Function 函数
前言:
编程的三种方式
- 面向对象:类 (class)
- 面向对象 : 过程 (def)
- 函数式编程: 函数 (def)
定义:函数 vs. 过程
在python中,函数是对程序逻辑进行结构化或过程化的一种编程方法。 函数式编程就是:先定义一个数学函数, 然后按照这个数学模型用编程语言来实现。
过程式的编程就是没有返回值的函数式编程。 见下列
def func1(): ‘the function discption - define a function‘ #文档介绍,强烈推荐解释function的逻辑 print(‘in the func1‘) return 0 x=func1() print(‘from func1 return is %s‘ %x)
in the func1
from func1 return is 0
面向过程:定义一个过程,过程就是没有返回值的函数
def func2(): ‘define a process‘ print(‘in the func2‘) #定义一个过程,过程就是没有返回值的函数 y=func2() print(‘from func2 return is %s‘ %y)
in the func2
from func2 return is None
函数的返回值
返回的对象的数目 | python实际返回的对象 |
0 | None |
1 | object (包括一个list,或者另外一个function) |
>1 | tuple |
- 设置返回值的原因: 需要函数整个执行的结果,后面的程序需要根据这个执行结果来操作。
函数的作用:
1、可重复利用 2、使代码保持一致 3、可扩展性
调用函数 - 参数
1. 关键字调用(与形参顺序无关)及 标准位置调用 (与形参一一对应):关键参数不能写在位置参数前面,混合使用时以位置调用为主
def test(x,y): # 形式参数,是虚拟变量。 print(x) print(y) test(1,2) # 标准位置调用方法 test(y=3,x=2) # 关键字调用
2. 默认参数: 调用函数市,默认函数可有可无,非必传。 用途主要在于默认安装值,联系数据库的端口号。
3. 参数组:通过一个元组*(非关键字参数)或字典**(关键字参数)作为参数组传递给函数。参数组一定要放最后。
def func(*args): print(args) func(1,3,4,3,67) func(*[1,3,4,3,67])
(1, 3, 4, 3, 67)
(1, 3, 4, 3, 67)
def func1(**kwargs): print(kwargs) func1(name=‘alex‘,age=‘8‘,sex=‘F‘) #必须以关键字参数的方式
{‘name‘: ‘alex‘, ‘age‘: ‘8‘, ‘sex‘: ‘F‘}
变量的作用域
递归
def calc(n): print(n) if int(n/2) >0: return calc(int(n/2)) print("->",n) calc(10) # 递归的次数最高为999次
函数式编程
函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。
函数式编程中的函数这个术语不是指计算机中的函数(实际上是Subroutine),而是指数学中的函数,即自变量的映射。也就是说一个函数的值仅决定于函数参数的值,不依赖其他状态。比如sqrt(x)函数计算x的平方根,只要x不变,不论什么时候调用,调用几次,值都是不变的。
Python对函数式编程提供部分支持。由于Python允许使用变量,因此,Python不是纯函数式编程语言。函数式编程语言有erlang,hashhell等。lambda表达式和其他四种内建函数。 (待补充)
- 匿名函数与lambda
- 内建函数 - apply()
- 内建函数 - filter()
- 内建函数 - map()
- 内建函数 - reduce()
高阶函数
Python 基础 - Day 2 Learning Note - Function 函数