函数
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'}