python07_函数

函数:是指实现某个功能的一段代码
使用函数的好处:
1.模块化程序设计
2.减小代码冗余
3.维护方便python

函数的格式:
python07_函数ide

1)函数参数
定义:函数取得的参数是你提供给函数的值
参数分为:
形参:参数名称
实参:提供给函数调用的值
注意:形参和实参能够同名,但不必定是同一个对象,也能够不一样名模块化

分类:
1.按定义
必选参数-----在调用时必需要填
默认参数-----提供默认值,调用时可不填
可变长位置参数(*args)
可变长关键字参数(**args)函数

ps:函数至关于打包,*args和**args至关于拆包
python07_函数
python07_函数编码

2.按调用
位置参数----按参数顺序依次传递
关键字参数----按key依次传递
注意:若函数里两种参数都有,关键字参数要放在位置参数的后面,如 userinfo(18,"female",name="han")翻译

参数定义的最佳方式:mysun(必选参数,*args,默认参数,**args)设计

参数的调用:mysun(位置参数,关键字参数)3d

2)函数return语句
做用:用来退出函数,函数遇到return就结束执行,函数默认返回None
python07_函数对象

3)匿名函数
定义:没有名字的函数,只能有一个表达式,不用写return
格式:
python07_函数
注意:
匿名函数能够设置默认参数,可变长参数
当函数只是实现简单且一次性使用时,可定义为匿名函数
把匿名函数做为返回值返回
python07_函数
python07_函数blog

4)递归函数
定义:在函数的定义中使用函数自身的方法
实现递归的条件:
出口条件,即递归“何时结束”,一般在递归函数的开始就写好
python07_函数
注意:
若是可使用普通函数解决,尽可能不要用递归,数据存放到堆栈中,递归次数多,会致使内存的消耗比较大

5)函数的参数传递
本质:传递的是引用
传递不可变对象:
python07_函数
若是参数是不可变对象,a和x之间相互独立,对x的操做不会影响引用a
传递可变对象:
python07_函数
若是传递的是可变对象,那么改变函数参数,有可能改变原对象
注意:
若是是传递可变对象,在定义参数时,尽可能避免参数的默认值设置成一个可变对象

6)变量做用域
定义:变量起做用的范围,全部变量的做用域是它们被定义的块,从它们的名称被定义的那点开始
分类:
1.局部变量
2.全局变量
3.内建变量

global语句:为一个定义在函数外的变量赋值,在函数内使用
python07_函数
使用global语句能够清楚代表变量是在外面的块定义的
global语句被用来声明变量是全局的

命名空间:python使用命名空间记录变量,python中的命名空间就像是一个dict,key是变量的名字,value是变量的值

变量名解析:LEGB原则
LEGB做用域查找原则,当引用一个变量时,python按照如下顺序依次查找:
python07_函数
第一个可以完成查找的就算成功
变量在代码中被赋值的位置一般就决定了它的做用域

查看变量:
locals()和globals()
python07_函数

7)文档注释
分类:单行注释、多行注释、特殊注释
特殊注释:
#!/usr/bin/env python
python告诉Linux去哪一个路径下找python的翻译器
#--coding:utf-8--
告诉python解释器,如何解释字符串中的编码类型

文档字符串是包、模块、类或函数里的第一个用三引号引发来的字符串

PS:
元组:a = (1,2,3...)
列表:b = [1,2,3...]
字典:c = {'x':1,'y':2}

sorted 排序函数
python07_函数

8)内建函数与工厂函数
函数与方法:
函数是你们的函数,方法是类的方法
与类和实例无绑定关系的function都属于函数(function)
与类和实例有绑定关系的function都属于方法(method)

内建:python已经创建好的,无需导入,直接调用
内建函数:pythonyi已经建好的函数
内建方法:通常是针对面向对象而言,是类的方法
内建方法就是指一个自带的对象所带的方法。如list的pop操做

工厂函数:指这些内建函数都是类对象,它们看上去像函数,实质上是类,当你调用它们时,其实是生成了该类型的一个实例,就像工厂生产货物同样。
工厂函数主要与数据类型相关
int(), float(), complex(), bool()
str(), bytes() : 字符型
list(), tuple():生成列表或者元组
dict(), set():生成一个字典或集合
slice():切片

经常使用内建函数:• input()、print():输入输出函数• oct()、hex():转换函数• chr()、ord():ASCII与字符转换• abs(num)、pow()、round():数值运算函数 • isinstance():判断是否是实例• id():求内存地址 • len():求长度 • sum():求和 • max():最大值• min():最小值 • enumerate(iter) :接受一个可迭代对象做为参数,返回一个enumerate 对象

相关文章
相关标签/搜索