函数:
本节内容:
1. 什么是函数
2. 函数定义, 函数名, 函数体以及函数的调⽤
3. 函数的返回值
4. 函数的参数
1.什么是函数?
定义⼀个事情或者功能. 等到需要的时候直接去⽤就好了. 那么这⾥定义的东⻄就是⼀个函数.
函数: 对代码块和功能的封装和定义
2. 函数定义, 函数名, 函数体以及函数的调用
函数的语法如下:
del 函数名():
函数体
函数名的命名规则和变量的命名规则是一样的,
函数体就是调用函数后执行的代码.
函数的调用是通过函数名()调用的
3. 函数的返回值
函数的返回是通过return来实现的,
return的作用是执行完函数后给调用函数的返回一个值,还有就是执行到return时函数结束,停止执行,关于return的返回有三点,如果函数没有返回,或者return后面不跟东西的话,那如果接收函数的话,会得到一个None,另外,如果return后面跟一个值,那么函数执行完成后会返回一个值.如果后面跟多个值,那么函数执行完成后,会返回一个元组.
4. 函数的参数
函数的参数分为形参和实参
形参的表示在声明函数时传入的变量,
示例如下:
def fun(a,b):
print(a,b)
实参表示在调用函数时传入的值.
调用示例
fun(1,2)
形参有三种传入方式,以及这三种方式都可以混用.
位置参数:
示例
def fun(a,b,c):
print(a,b,c)
这种按照顺序传入的参数方法是位置参数
默认值参数
def fun(a,b=2):
print(a,b)
示例:
def fun(a,b=2): print(a,b) fun(1) """ 这里执行后生成的是1 2 """
两种的混用
上面就是两种的混用,这里要注意一点的是混用时位置参数,一定要在默认参数前面
动态参数:
动态参数有两种,一种是*args 和一种是**kwargs.
动态参数和其他参数区别在于可以不限制用户的输入个数.根据不同的参数,传入的值也不一样的.
*args位置变量的动态参数,也就是说您传多少位置变量都可以接爱.
在函数里面args就是一个元组,args就是把所以函数的传入依次组成了一个元组了.
示例:
def fun(*args): print(args) fun(1,2,3,4,5) """ 执行结果如下 (1, 2, 3, 4, 5) """
** kwargs接受的是实参传来关键字参数.会把关键字参数都组成键值对,存入字典中.
示例如下:
def fun(**kwargs): print(kwargs) fun(a=2,b=3) """ 执行结果如下: {'a': 2, 'b': 3} """
最最重要的是各种形参的传入次序,顺序如下
位置参数 > * args > 默认值参数 > ** kwargs
示例:
def fun(a,b,c,*args,d=2,**kwargs): print(a,b,c,d,args,kwargs) fun(1,2,3,4,5,6,7,8,d= 99,f= 66) """ 执行结果如下: 1 2 3 99 (4, 5, 6, 7, 8) {'f': 66} """
实参
实参的变量有位置变量和关键字变量,
位置变量:
比如定义好了fun()
那么位置变量就是fun(1,2)
关键字变量
如果定义好了fun(a,b)
那么关键字实参就是
fun(a=1,b=2)
混后用法就是
fun(1,b=2)
但是要注意一点的就是位置变量要在关键字变量之前.
5. 三目运算
s = a if a>b else b
上面的这个意思就是如果a>b那么把a赋值s如果不是a>b那么把b赋值给s.
示例:
a = 3 b = 5 s = a if a > b else b print(s) """ 执行结果是5 """
6.函数传入过程种的打散
比如lst = [1,2,3,4]
def fun(*args):
print(args)
如果想传入fun(1,2,3,4)这样的话,
可以用下面这种方法
fun(*lst)
字典也可以这样用,
dic = {"a" = 1,"b"=2}
def fun(**kwagrs):
print(kwargs)
fun(**dic)
示例如下:
dic = {"a": 1,"b":2} def fun(**kwargs): print(kwargs) fun(**dic) """ 执行结果如下: {'a': 1, 'b': 2} """