day006-python函数

一、定义函数  def 函数名():

    函数体代码

  例:
  #定义函数
  def email():
    print('send email')
  #调用执行函数
  email()

二、函数的返回值

  def email():
    print("send email")
    return "发送成功"       #没有return,默认返回None

  ret = email()     #函数return后面是什么值,ret等于返回值
  print(ret)
注意:一旦遇到return,函数内部return以下的代码不再执行。

三、函数的普通参数

  def email(address):     #address为形式参数
  print(address)
  return True

  ret = email('123@qq.com')       #调用执行传值,为实际参数
  #传参,默认是按顺序传值,也可以指定形参传入实参,就可以不按顺序

四、函数的默认参数

  #注意:有默认值的参数要放在后面
  def email(name, address="456@163.com"):             #name、address为形式参数,address有默认值为456@163.com
  print(name, address)
  return True

五、函数的动态参数

1)简单的动态参数
#注意:加上一个*号,即可成为动态形式参数,转换元组;加上两个**号时,转换成字典
  def email(*addr, **address):
    print(addr)
    print(address)

  email(11, 22, 33, k1 = 123, k2 = 456) #在动态函数参数中,可以传入多个参数
  结果:
  (11,22,33)
  {'k1':123, 'k2': 456}

2)为动态参数传入列表、字典或元组
  2.1)实参传入列表
    def f1(*args):
      print(args)

    li = [11,22,33,44] #列表
    f1(li)         #结果为[11,22,33,44]
    f1(*li)        #结果为(11,22,33,44),注意在传入实参时,加入*号
  2.2)实参传入字典
    def f2(**kwargs):
      print(kwargs)

    dic = {'k1':789} #传入字典
    f2(dic)           #结果报错
    f2(**dic)        #结果为{'k1':789},注意在传入实参时,加入**号

  注意:python语言传参,传入的引用。

六、全局变量、局部变量

  P = "python"         #p为全局变量,变量名一般大写,可以共享使用

  def func():
    a = 123          #a 为局部变量,变量名一般小写,只能在func()函数中使用
    #如果在函数内想修改全局变量,则需要使用关键字global
    global P
    P = "java"            #全局变量P的值被修改为"java"

    print(a)          #结果为123
    print(P)        #func()函数可以使用全局变量

七、lambda表达式

  lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数

  a.lambda表达式的创建
    函数名 = lambda: 函数体

  实例一:
    func = lambda: 123

    r = func()
    print(r) #结果为: 123

  实例二:
    add = lambda x, y : x+y
    add(1,2) # 结果为3

原文地址:https://www.cnblogs.com/june-L/p/11546438.html