🗡️
函数
一、函数的基本使用
1. 函数的定义
什么是函数:
- 函数是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集
函数的作用,为什么要用函数:
- 使用函数可以加强代码的复用性,提高程序编写的效率
- 防止代码冗余,提高代码可读性
函数的使用:
- 函数必须先创建才可以使用,该过程称为函数定义,函数创建后可以使用,使用过程称为函数调用
函数只有调用才会被执行,例如下面的程序
def hello(): ##定义hello函数
print('hello1') ##函数内容
print('hello2')
print('hello3')
hello() ##调用函数
hello1` `hello2` `hello3
有参函数,无参函数,空函数
#有参函数:
def func(test):
print(123)
#无参函数:
def func():
print(123)
#空函数:
def func():
pass
2、返回值
- 不写return:默认返回None
- 只写return:只有结束函数体代码的效果,返回None
- return返回一个值:可以将返回的结果,当作一个变量值来使用
- return返回多个值:
- 将返回的多个值,默认存入元组返回
- 函数的返回值不想被修改
- 可以自己指定返回的数据类型
返回值:函数运行的结果,还需要进一步操作时,给一个返回值 return用来返回函数执行结果,如果没有返回值,默认为None
python可以间接返回多个值(返回了一个元组),一旦遇到return,函数执行结束,后面的代码不会执行。
形参实参
定义函数的时候的变量,叫形参
(可以任意起名)
函数调用阶段传入的参数是实参
def welcome(a): ##这里的a是形参
print('hello',a)
welcome('luck') ##这里的luck是实参
3.函数的四大形参(传参方式)
参数可以分为实参和行参,而行参又可以分为四类,位置参数、默认参数、可变参数和关键字参数。
1.位置参数
行参和实参的个数必须保持一致,最好按位置传参
def info(name,age):
print(name,age)
Info('leiting',20) ##按照位置的写法
Info(age=20,name='letin') ##如果不按照位置的话,就是要这样
2.默认参数
设置默认参数时注意事项:必选参数在前,默认参数在后
在定义函数阶段就已经传入参数
如果说你在实参的时候传入了一个新的参数,就会使用新参数默认参数在传值的时候
不要将可变类型当做参数传递
应用场景:
- 一般来说,将参数值变化小的设置为默认参数。
- 当参数对应值重复出现的情况下使用默认参数
def pow(x,y=2):
print(x ** y)
pow(4,3) ##此时就将y的值改成了3
3.可变参数(接收所有溢出的位置参数)
匹配完定义好的参数,剩余的参数以元组的形式存储在 *args(*args 名称你可以自行定义)
def hello(*args):
pass
*wargs
(可变参数) 和 **kwargs
(关键字参数)
def hello(**kwargs):
pass
4.关键字参数( Keyword Arguments)(接收所有溢出的关键字参数)
声明只能在默认参数之前,最好老老实实呆在对应的位置
def pow(x,y=2):
return x ** y,x +y
*的用法
放到实参中就是打散
在函数的定义时,位置参数,关键字参数-–-–>聚合。
在函数的调用(执行)时,位置参数,**关键字参数-–-–>打散
4.变量的作用域
一般在函数体外定义的变量成为全局变量
,在函数内部定义的变量称为局部变量
。
全局变量所有作用域都可用,局部变量只能在本函数可用,变量的使用顺序是,局部变量 > 全局变量, 也就是说:优先使用局部变量
那么问题来了, 如果想在函数内使用全局变量,或改变全局变量的值, 应该怎么做呢?
global: Python中定义函数时,若想在函数内部对函数外的变量进行操作,就需要在函数内部声明其为global(声明之后为全局变量)。