1、常见内置函数:
print、pow、input、sorted等等
Python函数特点:功能强大、调用方便、灵活高效
2、函数基本形式
def <函数名>(参数):
<函数语句>
return<返回值>
解释:
def:声明一个函数
函数名:可自定义,不要与关键字和内置函数名相同
help('keywords'):查看关键字
dir(__buitins__):查看内置函数。在cmd查看
参数:不是必须传入的,但是()不能省
return:没有返回值,者return语句可以省略。默认返回None
3、函数参数类型
def param_type(param1,*args,param2=3,**kwargs):
pass
参数类型:
param1,必须参数
*args,可变参数,可以传递任意个参数
param2=3,默认值参数
**kwargs,可变关键字参数,可以传递任意个关键字参数
3.1必须参数:定义了几个,调用函数就必须传递几个实参
def add(a,b,c=8):
sum=a+b+c
return sum
print(add(10,5,c=3))-->顺序传参
print(add(b=3,a=4))-->关键字传参数
3.2默认值参数
c=8-->默认值参数,可使用关键字参数进行重新赋值
3.3可变参数
序列解包:将序列中元素平铺出来,按顺序分别赋值给多个变量
s='123'
a,b,c=s
print(a,b,c)-->1 2 3
注意:赋值变量数量,需要与序列中元素数量一致
对于可变参数,可以传递任意个参数,这些参数在函数调用的时候自动组装成一个tuple
def func_args(*args):
print(args)
print(type(args))
func_args()-->空元组
a=(1,2)
func_args(*a)-->将元组中元素平铺出来,传递给可变参数的函数里里面,对序列解包
举例:
def add_all(*args):
sum=0
for i in args:
sum+=i
return sum
print(add_all(1,2,3))-->输出6
a=(1,2,3,4)
print(add_all(*a))--->输出10
3.4可变关键字参数
可以传递任意个关键字,这些关键字参数在函数调用的时候,自动组装成一个dict
举例:
def func_kwargs(**kwargs):
print(kwargs)
print(type(kwargs))
# 传入0个关键字参数
func_kwargs()
# 传入多个
func_kwargs(name='ljl',age=10)
# 传入一个字典
a={'name':'ljl','age':10}
func_kwargs(**a)
# **代表将字典a中的元素平铺出来,将每个键值对传递给可变关键字参数的函数里面。
4、函数参数类型顺序
必须参数放在可变参数的前面,默认值参数放在第三位,可变关键字参数放在最后
5、变量作用域
1、Python作用域: L Local 局部作用域 E Enclosing 嵌套函数外层非全局作用域 G Global 全局作用域 B Built-in 内建作用域 2、变量根据作用域不同分为: 全局变量:整个程序内 局部变量:整个函数内 3、变量的引用特点: 函数内部是可以引用全局变量的 函数外部,一般不可引用局部变量 Python没有块级作用域的概念,但可以从外部引用代码块(if、for、while)的变量 4、作用域链:指作用域具有链式查找的特性 函数内部引用变量,会优先引用最近局部变量 函数内部引用变量,会逐级向上寻找
6、global关键字
函数外部想要引用函数内部局部变量,可以通过global关键字实现
7、函数return
1、程序运行第一个return语句后,大多数情况下,会跳出该函数,不在执行之后代码
例外: try excepy finally
def test():
a=1
return a
print('hello')
print(test())--->输出1
2、函数内可存在多个return,一般搭配if条件使用