python基础:函数

函数定义

函数是组织好的,可重复使用的,用来实现单一,或者相关功能的代码段
能够提高应用的模块性,提高代码的重复利用率

函数的规则

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
  • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。 return [表达式]
  • 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None

函数表达式

 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))

你可能感兴趣的:(python)