函数初识

函数

def name():
         print('ok')
  #def关键字,创建函数
  #函数名 name
  #函数体
  #返回值
  #执行函数 name()
  #在函数中,一旦执行return,函数执行过程立即终止
  ##################参数
  ####普通参数
def send(mail,name):
    print(mail,name)
    return True
ret=send("xxxxxx@qq.com","zeng")
if ret == True:
    print("发送成功!")
else:
    print("发送失败!")
 
  ######默认参数
  如果不传值,就使用默认参数 ,如果传值就使用实际参数,必须放到参数列表的后边.
  def send(a,b,c="ok")
  ######指定参数
def send(mail,name):
    print("*发送成功*","姓名:",mail, "邮箱:",name)
send(name="xxxx@qq.com",mail="Abc")
>>>发送成功 姓名:Abc 邮箱:xxxx@qq.com
 
  def sendmail(arg):
  #形式参数,传入的参数相当于变量。在函数体中使用
  sendmail("name")

 

#如果创建两个相同的函数。最后输出的值是?
def f1(a1,a2):
    return  a1 + a2
def f1(a1,a2):
    return a1 * a2
ret=f1(4,4)
print(ret)
#1.在内存中创建f1这个函数,指向的值是a1 + a2
#2.又创建了一个f1函数,这时指向的值是a1 * a2
#所以最后输出的结果是16
####引用,
def f2(al):
    al.append(999)
li=[1,2,3,4,]
f2(li)
print(li)
#最后打印的是[1,2,3,4,999]
#特殊字符,列表字典可修改,不可重新赋值 NAME="alex" def f3(): age=18 print(age,NAME) def f4(): age = 19 print(age,NAME) f3() f4()

 

全局变量和局部变量
#全局变量,所有作用域都可以读
name = 'zeng'
def f1():
    print(name,19)
f1()
def f2():
    print(name,20)
f2()
#修改全局变量,需要写一个global
def f3():
    global name    #表示name是全局变量
    name='hej'
    print(name,18)
f3()

#如果作用域里面有全局变量,那么使用作用域的值,如果没有,使用全局变量
def f4():
    name = 'heji'
    print(name,19)
f4()
三元运算
#if 条件,
#条件成立,name = "zeng"
#否则name='laoer'
name = "zeng" if 1==1 else 'laoer'
print(name)
#f2 函数名
f2 = lambda a1:a1 + 100
# #a2=9是默认参数
f3 = lambda a1,a2=9: a1 + a2 +100
##########三种传参方式,返回的值都是元组。
def f2(*args):
    print(args)
f2(11,22,"呵呵","哈哈")
#可以传入一个列表
list = [11,22,"呵呵","哈哈"]
f2(list)
#转换成元组,内部相当于执行了for循环
li = [11,22,"呵呵","哈哈"]
f2(*li)
#########返回的值是字典
def f2(*args):
    print(args)
dict = {"name":12,"age":20}
f2(dict)        #返回的字典
f2(*dict)       #返回的是字典中的key

#万能参数
def dict(*args,**kargs):
    print(args)
    print(kargs)
dict(11,22,k1="k1",k2="k2")
#(11, 22)
#{'k2': 'k2', 'k1': 'k1'}

 

posted @ 2016-05-28 09:55  (KeeP)  阅读(155)  评论(0编辑  收藏  举报