Day 9 函数初识

定义

def 关键词开头,空格之后接函数名称和圆括号(),以 ":"结尾。

def 是固定的,不能变,他就是定义函数的关键字。

函数名:函数名只能包含字符串、下划线和数字且不能以数字开头。虽然函数名可以随便起,但我们给函数起名字还是                           要尽量简短,并能表达函数功能

括号:是必须加的,先别问为啥要有括号,总之加上括号就对了!

注释:每一个函数都应该对功能和参数进行相应的说明,应该写在函数下面第一行。以增强代码的可读性。

调用:就是 函数名() 要记得加上括号。

函数最主要的目的:封装一个功能。

函数的返回值 return

1,函数中如果遇到retrun,则直接结束函数。

2,给函数的执行者返回值。

    return                        None

    return 单个值            原封不动的返回

    return 多个值            一个元组,所有的返回值作为元组的每一个元素

函数的传参:

    实参

        位置参数  按照顺序,一一对应

def func1(x,y):
    print(x,y)
func1(1,2)

  

        关键字参数  可以不按照顺序,但是必须一一对应

def func1(x,y):
    return x+y
print(func1(y=100,x=99))

  

        混合参数   关键字参数一定要在位置参数后面

def func1(a,y,n,x,n):
    return x+y
name = 'alex'
print(func1(100,200,name,y=100,x=99))

  

    形参

        位置参数  按照顺序,一一对应

        默认参数  给其传值,将原默认参数覆盖掉,不传值,不报错,使用默认值

def func1(x,y,a=666):
    print(x,y,a)
func1(1,2)
func1(1,2,333)
默认参数的陷阱
默认参数若是可变的数据类型,他始终使用的是一个。
def func1(x,l1=[]):
l1.append(x)
return l1
ret = func1(1)
print(ret,id(ret))
ret1 = func1(100)
print(ret1,id(ret1))

  

   动态参数(*args **kwargs)

   函数定义时:*聚合  *args:实参里面所有的位置参数。

                              **kwargs:实参里面所有的关键字参数。

      函数的调用时:* 打散。

def sum1(*args):
    count = 0
    for i in args:
        count = count + i
    return count
print(sum1(10,10,20,30,100))

  形参的顺序:位置参数,*args,默认参数,**kwargs

猜你喜欢

转载自www.cnblogs.com/hanayo/p/9494984.html