Python-函数

函数

  函数式编程

    将功能代码封装到函数中,无序重复编写,调用函数即可

    增强代码的重用性和可读性

  函数定义

def 函数名(参数):
""" 函数体 """ 返回值

  def:表示函数的关键字
  函数名:函数的名称,调用函数时使用函数名()

  函数体:很多语句

  参数:为函数体提供数据

  返回值:函数执行完毕后,给调用者返回的数据。

 

   关于参数

    定义函数时,(参数)中的参数为形式参数,简称:形参

def func(args):    # args为形参
    pass

    调用函数时,(参数)中的参数为实际参数,简称:实参

func("alex")    # "alex"为实参

    调用函数式,实际参数赋值给形式参数,指向同一个值。

def func(args):
    print(args)

func("alex")
#执行结果:alex

    函数有三种类型的参数:

      普通参数

        上述例子为普通函数

      默认参数

        默认参数必须是最后一个参数

def func(name , age = 18):
    print(name , age)

func("alex")    
#执行结果:alex,18

func("eric" ,19") #执行结果:eric,19

      动态参数

        *变量名:函数的参数是元祖;

          将接收到的实际参数,作为元祖的元素;

          以*标示实际参数,传入时,将实际参数的每个元素作为元祖的元素

def func(*args):
    print(args)

# 执行方式一
func(11, 33, 4, 4454, 5)
#执行结果:
# (11, 33, 4, 4454, 5)

# 执行方式二
tmp = "abcd"
li = [11, 2, 2, 3, 3, 4, 54]
li2 = ["11","22","33"]
func(*tmp)
#执行结果:
# ('a', 'b', 'c', 'd')

func(li,li2)
#执行结果:
# ([11, 2, 2, 3, 3, 4, 54], ['11', '22', '33'])

func(li,*li2)
#执行结果:
# ([11, 2, 2, 3, 3, 4, 54], '11', '22', '33')

        **变量名:函数的参数是字典;

def func(**kwargs):
    print(kwargs)

#执行方式一
func(k1="v1")
#执行结果:  {'k1': 'v1'}

#执行方式二
dic = {"k2":"v2","k3":"v3"}
func(**dic)
#执行结果:  {'k3': 'v3', 'k2': 'v2'} 

        *变量名,**变量名:可满足所有参数传递需要

def func(*args,**kwargs):
    pass

 

   lambda表达式: 匿名函数;只是个表达式

#无参数
func = lambda : print(1+2)

func()    
#打印:3

func = lambda: 1+2
num = func()
print(num)
#打印:3

#有参数
func = lambda n1,n2: n1+n2
tmp = func(1,2)
print(tmp)
#打印:3
tmp = func("a","b")
print(tmp)
#打印:ab

 

posted @ 2016-05-13 10:14  阿金study  阅读(84)  评论(0)    收藏  举报