python函数的定义

函数的定义

def 函数名(等同于变量名):
    '''对函数(工具)的描述信息'''
    代码块

例子:

def guess():
    '''给定两个数,打印较大的数'''
    x=20
    y=30
    if x>y:
        print(x)
     else:
        print(y)
print(guess.__doc__)#打印注释

函数定义的特性:函数定义过程,只检测语法,不执行代码。调用阶段,会执行代码。

定义函数的三种形式

空函数

def shopping():
    pass

有参函数

def guess(x,y):
    '''给定两个数,打印较大的数'''
    if x>y:
        print(x)
     else:
        print(y)
print(guess.__doc__)#打印注释
guess(10,20)

无参函数

def guess():
    '''给定两个数,打印较大的数'''
    x=20
    y=30
    if x>y:
        print(x)
     else:
        print(y)
print(guess.__doc__)#打印注释

函数的调用

调用:函数名()

guess()# 调用
print(guess)#函数的内存地址

函数的返回值

返回值:返回一个值(所有数据类型)

def guess():
    '''给定两个数,打印较大的数'''
    x=20
    y=30
    if x>y:
        return x
     else:
        return y
num=guess()
print(num)

return的特性:

1.return返回一个返回值,如果没有返回值,就返回None

2.没有return,默认返回None

3.return会终止函数,不运行下面的代码,假设有多个return的时候,运行到第一个就会结束,不会运行第二个。

4.return通过逗号隔开,可以返回多个值,返回值以元组的形式接受。

函数的参数

形参

定义函数阶段的产物,具有接受是实参的用作,具有描述意义

位置形参

从左到右依次接受实参的值

默认形参

1.如果你不给值,使用默认值;如果调用的时候传值,使用传的值

2.默认形参必须放在位置形参后面

实参

调用阶段的产物,传给形参一个具体的值,据有具体的值(可以位所以数据类型)

位置实参

从左到右依次给位置形参传值,一一对应,形参有多少,实参必须也有多少。

关键字实参

1.位置实参必须写在关键字实参的前面。

2.按照形参名给形参传值(使用情况基本为0)——》函数的参数一般为0-3个,尽量不要超过3个。

可变长参数

可变长形参

*lt,把所有传过来的实参全部接收,并且以元组的形式存储

def min_10(a, b, c, *lt):  # *lt,把所有传过来的实参全部接收,并且以元组的形式存储
    print(lt)#(4, 5, 6, 7, -1, 9, 10, 11, 12, 13, 1, 1, 1, 1, 1, 1, 1, 11, 1)
    a, b, c, d, e, f, g, h, i, j, *_ = lt
    print(_)#[1, 1, 1, 1, 1, 1, 1, 11, 1]
res = min_10(1, 2, 3, 4, 5, 6, 7, -1, 9, 10, 11, 12, 13, 1, 1, 1, 1, 1, 1, 1, 11,
             1, )  # *,相当于做了解压缩,也就是把lt内的元素一个一个取出来传给形参
print(res)

可变长实参

*相当于做了解压缩,也就是把lt内的元素一个一个取出来传给形参

def min_10(a, b, c, d, e, f, g, h, i, j):
    print(a, b, c, d, e, f, g, h, i, j)#1 2 3 4 5 6 7 8 9 10
lt = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
res = min_10(*lt)  # *,相当于做了解压缩,也就是把lt内的元素一个一个取出来传给形参
print(res)


*

*形参名

def f1(*args):#调用函数时,有多少个位置实参,我就接受多少个参数
    print(args)
f1()#空元组

*args(约定俗成得),用元组接受多余得位置实参

*实参

def f1(a, b, c, e, d, f, g):
    print(a, b, c, e, d, f, g)
lt = [1, 2, 3, 4, 5, 6, 7]# f1(lt[0],lt[1],lt[2],lt[3],lt[4],lt[5],lt[6])
f1(*lt)  # *lt把列表中的元素打散成位置实参依次传给位置形参

**

**形参

def f1(**kwargs):
    print(kwargs)
f1()#空字典

**kwargs用字典接受多余得关键字实参

**实参

def f1(z, b):
    print(z, b)
dic = {'z': 1, 'b': 2}  # a=1,b=2
f1(**dic)  # **dic把字典打散成关键字实参然后传给函数f1
posted @ 2020-03-26 22:24  风啊风啊  阅读(574)  评论(0编辑  收藏  举报