python--004--函数

1. 函数和过程

  过程:就是没有返回值的函数
  在python中函数和过程是一样的,没有区别,如果没有返回值,python会自动赋值为None

2. 总结:

返回值=0:返回None(即没有写返回值时,python自动赋值为None)
返回值=1:返回object(即返回一个值时,其类型为object)
返回值>1:返回tuple(即有多个返回值时,其类型为tuple)

 

3. 形参和实参 

形参:形参只有在被调用时才能分配内存单元,调用结束后,即刻释放所分配的内存单元
实参:可以是常量、变量、表达式、函数等

混搭传值:位置参数必须要在关键字参数左边,且不能重复赋值

def test(x,y,z):
    print(x,y,z)

v=test(1,2,z=3)

默认参数
参数组:(非固定长度的参数)**字典 *列表

def test(x, *args):
    print(x)
    print(args)

v = test(1, 2, 3, 4, 5, 6)

 

print的args=(2,3,4,5,6)当作元组来处理,但是传入的时候args将多传入的值当作列表处理

扫描二维码关注公众号,回复: 5565881 查看本文章
def test(x, **kwargs):
    print(x)
    print(kwargs)

v = test(1, y=2, z=3)

# print结果kwargs,为字典

output:

  1
  {'y': 2, 'z': 3}

 

4. 全局变量与局部变量
    函数中可以使用global来表示以下使用和改变的是全局变量

NAME="ALEC"

def TEST():
    global NAME
    NAME='sky'
print("change name",NAME)


output:
    change name ALEC

如果函数的内容中无global关键字,优先读取局部变量,能读取全局变量,无法对全局变量进行赋值,NAME=“fff”
但是对于可变类型,可以对内部元素进行操作如append等
如果函数中有global关键字,便来那个本质上就是全局的那个变量,可读取可赋值

 

执行顺序:(需要补一个)

全局变量练习:
name="佩奇"
def weihou():
    name="乔治"
def weiweihou():
    global name
    # nonlocal name   #nonlocal代指上一级的name
    name = "苏茜"

weihou()
print(name)
weiweihou()
print(name)

output:
    佩奇
    苏茜

5. 风湿理论之函数即变量

   在执行过程中,函数即变量

def test():
    pass
    name="wendy"

 意思是,创建函数和创建变量name一样,在内存中都是相当于门牌号是test、name,然后房间内是函数体、字符串wendy

 

 

 

猜你喜欢

转载自www.cnblogs.com/jinf/p/10549180.html
004