函数定义
函数是组织好的,可重复使用的,用来实现单一,或者相关功能的代码段
能够提高应用的模块性,提高代码的重复利用率
函数的规则:
函数表达式
def functionname(参数parameters):
函数体
return 表达式expression
例:
def add(a,b):
c=a+b
print("{}+{}={}".format(a,b,c))
函数调用
add(100,1)
add(-3,21)
add(3.1415926,6.6666)
参数的传递
python中类型属于对象,变量没有类型
不可变类型:字符串,元组,常量
可变类型:字典,列表
参数:
必备参数:必须以正确的参数个数和顺序传入参数
关键字参数:使用关键字参数来确定传入的参数值,调用顺序可与定义时不一致
def printstr(str):
print(str)
return
printstr(str="hello word")
默认参数:调用时,默认参数的值未传入则默认是默认值
def printme(name,age=10):
print("name",name,"age",age)
return
printme("萧忆情")
可变参数:传入的参数不定时使用
def function1(name,age,*args):# *args是列表 **kwargs是字典
for i in args:
print(i)
print(name,age)
return
def pt(*args):
print(args)
for i in args:
print(i,end="\t")
print()
pt(0,12,23,24,5,67,78,9,0)
pt(2,43,45)
def kw(**dd):
print(dd)
for k,v in dd.items():
print(k,v,end="\t")
print()
kw(name="dd",age=23)
kw(name="dd",age=23,sex="man")
kw(name="dd",age=23,sex="man",adress="heman")
匿名函数:
lambda是一个表达式,比def 简单
lambda拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
sun=lambda a,b:a+b
print("相加后的值为",sum(12,23))
变量作用域:
全局变量 局部变量
规则:L-E-G-B
Local(本地)
Encloding(嵌套)
Global(全局)
Built-in(内置)
def d(a,b,c=[ ]):#运行时无错,但有逻辑错误,输出['x']
c.append("x")# ['x', 'x']
print(c)
d(1,3)
d(12,23)
a=100
def w():
b=200
def n():
c=300
print(c)#L
print(b)#E
print(a)#G
print(max)#BUILT-IN
n()
w()
a=[lambda x:x*i for i in range(3)]#内部x*i并未调用,i从(0,3)中依次取值,最终取值为2
print(a[0](3))
print(a[1](3))
print(a[2](3))