函数的初始:

def 关键字,函数名具有描述性

def my_len():

  #函数体

my_len() #执行函数 函数名()

func1() : 整体是函数的执行者

函数的优点:

1.减少代码的重复性

2.增强代码的阅读性

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

函数的返回值:return

1.函数中如果遇到return,则直接结束函数

2.给函数的执行者返回值

  return:只有一个return,返回的是none

  return后面加单个值,这个值本身是什么数据类型,就返回什么类型

  return后面加多个值,是以元祖的形式返回,所有的返回值是元祖的每一个元素

注意:工作中函数尽量不要出现print

def func1():
    print(111)
    print(222)
    return
    print(333)
priint(func1())

  最后打印出111,222,而因为return的出现,函数结束,333将不会被打印

函数的参数分为两个:

实参:

  位置参数:必须要一一对应

l1 = [1, 2, 3]
s = 'skhdakhd'
def my_len(argv):      #argv形式参数
    count = o
    for i in argv:
        count += 1
    return count
print(my_list(l1))      #3  函数的执行者实际的参数

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

def compare(x,y):
    return x if x > y else y
print(compare(x = 10,y = 20))

  x,y分别对应了值

def sum(x,y):
    return x+y
a = 3
b = 6
print(sum(a,b))
以上的代码是对的,运行结果是9,但是如果写成下面的代码就是错的
def sum(x,y): return x+y print(sum(a=3,b=6))
这行代码则是把a,b定义成了关键字参数,程序如果在上面只找到了x,y找不到a,b那么,程序将会以为是多出了两个参数

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

def func1(a,b,n,x,y)
    return x+y
name = 'alex'
print(func1(100,200,name,y = 10,x = 20)

 形参:

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

def function(x,y,z):
    print(x,y,z)
func(1,2,3)  

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

应用场景:不经常改变的参数,但是一直在用

def func1(x,y,a=666):
    print(x,y,a)
func1(1,2,)    #打印出(1,2,666)
func1(1,2,333)   #打印出(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)

  

 

 

 posted on 2018-08-15 18:01  beriuta  阅读(112)  评论(0编辑  收藏  举报