python--函数汇总
函数:
定义和特性:
定义:
函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名()即可
特性:
1,代码重用
2,保持一致性
3,可扩展性
函数的创建:
一,格式:
python定义函数使用 def 关键字,一般格式如下:
def 函数名(函数形参):
函数体
二,函数名的命名规则:
1,函数名必须以下划线或字母开头,可以包含任意字母、数字或下划线的组合。不能使用任何的标点符号
2,函数名是区分大小写的
3,函数名不能为保留字
三,形参和实参
形参:不是实际参数,是虚拟变量。在定义函数和函数体的时候使用形参,目的是在函数调用时接收实参
实参:实际参数,调用函数时传给函数参数,可以是常量、变量、表达式、函数、传给形参
区别:形参是虚拟的,不占用内存空间,形参变量只有在被调用时才分配内存单元;实参是一个变量,占用内存空间,数据传送单向,实参传给形参。
函数的参数:
1,必备参数:
参数必须以正确的顺序传入函数。调用时的数量必须和声明时的一样
def f (name,age):
print('I am %s,I am is %s' %(name,age))
f('chen',18)
2,关键字参数:
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为python解释器能够用参数名匹配参数值
f(age=18,name='chen')
3,缺省参数:
调用函数时,缺省参数的值如果没有传入,则被认为是默认值。
def f (name,age,sex='male'):
print('I am %s,I am is %s,I am sex %s' %(name,age,sex))
f('chen',18)
>>I am chen,I am is 18,I am sex male
4,不定长参数:
可以处理更多的参数,加星号(*)的变量名会存放所有未命名的变量参数。加两个星号(**)的变量名会存放命名的变量参数。
函数的返回值:
定义:
要想获取函数的执行结果,就可以用return语句把结果返回。
注意:
1,函数在执行过程中只要遇到return语句,就会停止执行并返回结果,也可以理解为return语句代表着函数的结束。
2,如果没有在函数中指定return值,则返回值为 None
3,return多个对象,解释器会把这多个对象组装成一个元组作为一个整体结果输出。
作用域:
作用域介绍:
local:局部作用域,即函数中定义的变量
enclosing:嵌套的父级函数的局部作用域,既包含此函数的上级函数的局部作用域,但不是全局的;
globa:全局变量,就是模块级别定义的变量。
built-in:系统固定模块里面的变量,比如:int,bytearray等。
搜索变量的优先级为:
局部作用域-->外层作用域-->全局作用域-->python内置作用域
-----legb
作用域的产生:
在python中只有
模块(module),类(class),以及
函数(def,lambda)才会引入新的作用域,其他的代码块(如if,try,for等)是不会引入新的作用域的。
变量的修改:
当内部作用域想要修改外部作用域的变量时,就要用到global和nonlocal关键字了
global:
当修改的变量是在全局作用域(global作用域)上的,就要使用global先声明一下
count=10
def outer():
global count
print(count)
count=20
print(count)
outer()
>>10
>>20
nonlocal:
global关键字声明的变量必须在全局作用域上,不能在嵌套作用域上,当要修改嵌套作用域就只能用nonlocal
def outer():
count =10
def outer1():
nonlocal count
print(1+count)
count=20
print(2+count)
print(3+count)
outer()
>>13