第6章 Python函数
2019-01-10 18:10
25 查看
第6章 Python函数
一、什么是函数
函数是组织好的,可重复利用的,用来实现单一的或相关联功能的代码段,它能够提高应用的模块化和代码的重复利用率。
二、函数的定义和使用
在Python中定义函数的格式
def 函数名(参数列表):
“函数_文档字符串”
函数体
return 表达式
函数定义规则
- 函数代码块以def开头,后面紧跟的是函数名和圆括号()。
- 函数名的命名规则跟变量的命名规则是一样的,即只能是字母、数字和下划线的任何组合,但是不能以数字开头,并且不能跟关键字重名。
- 函数的参数必须放在圆括号总。
- 函数的第1行语句可以选择性地使用文档字符串来存放函数说明。
- 函数内容以冒号起始,并且缩进
- return表达式结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None。
def print_into(): print('--------------------------------') print('人生苦短,我用Python') print('--------------------------------') print_into()#调用函数 #不调用是不会打印出结果的
三、函数的参数
- 函数参数的船体
可以传递从其他地方接受的值。
def add(a,b): c = a + b print(c) add(11,22) #结果: #33
- 默认参数
定义参数,可以给函数的参数的设置默认值,这个参数就被称为默认参数。当调用参数的时候,由于默认参数在定义时已经被赋值,所以可以直接忽略,而其他参数时必须传入值的。如果默认值没有传入值,则直接使用默认值;如果默认参数入了值,则使用传入的新值替代。
def print_info(name,age=30): print("Name:",name) print("Age:",age) print_info(name="miki") print_info(name='miki',age=9)
- 不定长参数
def 函数名([formal_args,] args, kwargs):
“函数_文档字符串”
函数体
return 表达式
在上述格式中,函数共有3个参数。其中formal_args为形参,*args和kwargs为不定长参数。当调用函数的时候,函数传入的参数个数会优先匹配formal_args参数的个数。如果传入的参数个数和formal_args参数个数相同,不定长参数会返回空的元组或字典;如果传入参数的个数比formal_args参数的个数多,不定长参数会返回:
(1)如果传入的参数没有指定名称,那么args会以元组的形式存放这些多余的余数;
(2)如果传入的参数指定了名称,如m=1,那么**kwargs会以字典的形式存放这些被命名的参数,
def test(a,b,*args): print(a) print(b) print(args) def test2(a,b,*args,**kwargs): print(a) print(b) print(args) print(kwargs) test(11,22) print("="*10) test(11,22,33,44,55,66,77,88,99) test2(11,22,33,44,55,66,77,m=88,n=99) #11 #22 #() #========== #11 #22 #(33, 44, 55, 66, 77, 88, 99) #11 #22 #(33, 44, 55, 66, 77) #{'m': 88, 'n': 99}
四、函数的返回值
所谓“返回值”,就是程序完成一件事情后,最后给调用者的结果。比如,定义一个函数来获取室内的温度,一旦调用这个函数,函数就会把拿到的温度值返回给调用者,这个温度值就是函数的返回值。在Python中,函数的返回值时使用return语句来完成的。
def add(a,b): return a+b print(add(1,2)) #结果 #3
五、函数的四种类型
根据有没有参数和返回值,函数大概可以分为四种类型:
(1)函数无参数,无返回值
(2)函数无参数,有返回值
(3)函数有参数,无返回值
(4)函数有参数,有返回值
- 无参数、无返回值的函数
def print_menu(): print("-----------------------") print(' **刷刷锅 点菜系统') print('1. 羊肉刷刷锅') print('2. 羊肉刷刷锅') print('3. 羊肉刷刷锅') print('-----------------------') print_menu() #结果 #----------------------- # **刷刷锅 点菜系统 #1. 羊肉刷刷锅 #2. 羊肉刷刷锅 #3. 羊肉刷刷锅 #-----------------------
- 无参数、有返回值的函数
此类函数不能接收参数,但是可以返回某一个数据,一般情况下采集数据时会用此类函数。
def get_temperature(): return 24 temperature = get_temperature() print("当前温度",temperature) #当前温度 24
- 有参数、无返回值的函数
在实际开发中,有参数、无返回值的函数用的极少,这是因为函数作为功能模块,既然传入了参数,绝大多数情况时希望使用返回值的。
def test(number_one,number_two): result=number_one+number_two print('计算结果%d'%result) test(1,2) #结果 #计算结果3
- 有参数、有返回值的函数
此类函数不仅能接收返回值,还可以返回某一个数据。
def calculate(number): result = 0 i = 1 while i<=number: result = result +i i +=1 return result result = calculate(100) print('1~100累计和',result) #结果 #1~100累计和 5050
六、函数的嵌套使用
在一个函数中调用了另外一个函数,这就是所谓的函数的嵌套调用。
def func_one(): print('----func_one start----') print('这里是func_one函数执行的代码') print('----func_one end----') def func_two(): print('----func_two start----') func_one() print('----func_two end----') func_two() #结果 #----func_two start---- #----func_one start---- #这里是func_one函数执行的代码 #----func_one end---- #----func_two end----
七、变量的作用域
- LEGB原则
Python中,程序的变量并不是在那个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的。
a = 10 def test(): a = 20 print('a的值是%d'%a) test()
变量的作用域决定了在那一部分可以访问那个特定的变量名称。Python变量的作用域一共有
4种,分别是:
L(Local):函数内的区域,包括局部变量和参数
E(EnClosing):外面嵌套函数区域,常见的是闭包函数的外层函数,
G(Global):全局作用域
B(Built-in):内建作用域
Python中变量是采用L->E->G->B的规则查找,即Python检索变量的时候,会优先在局部作用域查找,如果没有找到,便会去局部外的区域找(例如闭包),再找不到就会去全局作用域中找,最后再去内建作用域找。
相关文章推荐
- Python基础教程 第6章: 抽象(函数) 学习笔记
- 【Python基础教程】第6章 函数
- Python基础--第6章 函数操作——功能化程序片段的封装
- python 的函数
- python文件和目录操作函数小结
- python 函数如何不修改原始列表
- 温故知新python3--基础知识3(函数高级特性)
- [python] 第7章 函数 第8章 模块
- python中各种遇到的函数
- python中函数在认识
- python经典函数区分
- python 函数一
- python编程快速上手之第6章实践项目答案。
- python学习之---匿名函数,返回函数,偏函数
- Programming Scala 第6章 demo08 偏应用函数
- python 中 print 函数用法总结
- python字符串内建函数操作实例(cmp、str、enumerate、zip等)
- python常用函数
- Python学习笔记之函数作为返回值、闭包的解释
- Python正则表达式常用函数总结