python学习第九章

函数:

本节内容:

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}
"""

猜你喜欢

转载自www.cnblogs.com/ahliucong/p/9173188.html