python之所以强大好用,离不开可以调用的各种库,同时也和他自身函数相关,下面为学习python函数相关知识后整理知识点。
1、python函数参数:
Python函数定义简单但灵活度非常大。除正常定义的必选参数外,还可以使用默认参数,可变参数,关键字参数。
默认参数:def power(5 , x = 2)在函数接口直接赋值。可传参改变大小,可省略参数。
注意事项:1、
必选参数在前,默认参数在后,否则Python的解释器会报错
2、设置默认参数:当函数有多个参数时,把变化大的参数放前面,变化小的参数放后 面。变化小的参数就可以作为默认参数。
当有多个默认参数时,默认参数不按照顺序传,需要带上名字,让程序知道是给那个参数赋值。
定义默认参数:要牢记一点:默认参数必须指向不变对象!
定义可变参数:
定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个
*
号。
nums = [1,2,3]
*nums表示把nums这个list的所有元素作为可变参数传进去。
可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。
关键字参数:
关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。
extra = {
'city'
:
'Beijing'
,
'job'
:
'Engineer'
}
person(
'Jack'
,
24
, **extra)
**extra表示把extra这个dict的所有key-value用关键字参数传入到函数的**kw参数,kw将获得一个dict,注意kw获得的dict是extra的一份拷贝,对kw的改动不会影响到函数外的extra。
命名关键字参数:必须传入参数名
和关键字参数
**kw
不同,命名关键字参数需要一个特殊分隔符
*
,
*
后面的参数被视为命名关键字参数。
def
person
(name, age, *, city, job):
如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符
*
了:
def
person
(name, age, *args, city, job):
参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
2、python的函数调用&函数定义:
调用函数:函数名(参数)
abs(x):求绝对值
max(1,2,3......)参数任意多个,求最大值
数据类型转换:
int():把其他类型转换为整型。int('123')
str():把其他类型转换为字符串。 str(123)
把函数名赋给变量,相当于给函数起了个别名。
函数定义:def 函数名(参数):
在缩进块中编写函数体,返回值用return返回。
如果函数保存在文件中,在Python解释器中导入:
from 文件名 import 函数名 不含.py扩展名
空函数:函数体用pass,表示什么也不做。
参数检查:
对参数类型做检查:isinstance()
def
my_abs
(x):
if
not
isinstance(x, (int, float)): x只允许整型和浮点型
raise
TypeError(
'bad operand type'
)
if
x >=
0
:
return
x
else
:
return
-x
返回多个值:函数可以返回多个值,也就是一个tuple。
导入math包可以引用math包里函数:import math
定义函数时,需要确定函数名和参数个数;
如果有必要,可以先对参数的数据类型做检查;
函数体内部可以用return随时返回函数结果;
函数执行完毕也没有return语句时,自动return None。
函数可以同时返回多个值,但其实就是一个tuple。