函数的定义:

1.def:表示函数的关键关键字

def my_len():       #函数名的定义
    li = [1,2,3,4,5,6,7]
    count = 0
    for i in li:
        count +=1
    return count   #函数的返回值
ret = my_len()     #函数的调用 以及 返回值的接受
print(ret)

 

2.函数名:函数的名称,以后根据函数名调用函数

3.函数体:函数中进行一系列的逻辑运算

4.参数:为函数提供数据 1.位置参数 2.默认参数 3.动态参数

    动态参数:*args 接受所有按照位置的参数,接受到的是参数组成的元祖

                 **kwargs 接受所有按照关键字传的参数,接受到的是参数组成的字典

 

 

 

5:返回值:当执行完毕后,可以给调用者返回数据(可以返回任意的数据类型,返回什么就接受什么)

def func2():                          #1
    print('in func2 now')          #5
    print('多写了一行')             #6
    if True:                        #7
        print('又多写了一行'),,,,     #8
    return'func2的返回值'           #9

def func():                  #2
    ret=func2()            #4
    print(ret)              #10
    n = 20                     #11
    print(n)                    #12
func()                   #3

 

6.函数的嵌套调用循环:

def func2():                          #1
    print('in func2 now')          #5
    print('多写了一行')             #6
    if True:                        #7
        print('又多写了一行'),,,,     #8
    return'func2的返回值'           #9

def func():                  #2
    ret=func2()            #4
    print(ret)              #10
    n = 20                     #11
    print(n)                    #12
func()                   #3

 

7.作用域:一个名字可以使用的区域

  作用域:一个名字可以使用的区域

全局作用域:内置名字空间和全局名字空间中的名字都属于全局作用域
局部作用域:局部名字空间中的名字属于局部作用域
局部作用域可以使用全局作用域中的变量
而全局作用域不能使用局部作用域中的变量
局部作用域中还可以嵌套更小的局部作用域
作用域链:小范围作用域可以使用大范围的变量,但作用域链是单向的,不能反向应用

 

 

命名空间 :内置命名空间(py解释器自带的 比如:len()拿过来就能用)

     全局命名空间:写在函数外面的变量名

     局部命名空间:每个函数都有自己的命名空间

     加载顺序(先所有内置命名空间中的名字----->然后按照顺序加载全局命名空间的名字)

         

第一对象:

  1,函数名可以赋值

  2.可以作为一个数据结构的元素

  3.可以作为一个函数的参数

  4.可以作为一个函数的返回值

 

posted on 2017-11-05 21:00  Wsj_six  阅读(290)  评论(0编辑  收藏  举报