Python函数认识

变量

       昨天学习了函数基本定义和函数的参数,今天接着学习函数,先来认识下变量,跟其他语言一样,变量之间的区别就是变量的作用域不一样,Python中的变量分为全局变量和局部变量。详细解释如下:

             (1). 全局变量:顾名思义,定义在函数外的变量,可以在整个程序内访问的就是全局变量,也可以说没有缩进的变量就是全局变量。

             (2). 局部变量:顾名思义,定义在函数内的变量,只能在函数内部访问的就是局部变量,也可以说有缩进的变量就是局部变量。

name = 'mary'  #全局变量

def change_name():
    print(name)
change_name()

def  change_name1():
    name = 'li'   #局部变量
    print(name)
change_name1()

        1.全局变量和局部变量的调用

                 (1). 如果没有局部变量会直接调用全局变量

name = 'mary'  #全局变量

def change_name():
    print(name)   #调用全局变量
change_name()  #调用函数



                 (2). 如果全局变量和局部变量同名,则调用局部变量

name = 'mary'  #全局变量

def  change_name1():
    name = 'li'   #局部变量
    print(name)   #调用局部变量
change_name1()    #调用函数



                 (3). 如果函数中有global关键字声明的局部变量,则这个局部变量指向全局变量

name = 'mary'  #全局变量

def change_name2():
    global name   #声明全局变量,必须放在调用此变量之前
    name = 'pick' #修改全局变量
    print(name)   #调用全局变量
change_name2()    #调用函数

            注意:上面写的是变量的调用规则,感觉很容易混淆,所以呢,如何避免这个问题呢,编程时,默认规则是全局变量全部大写,局部变量全部小写,有没有突然感觉前面学的没用了,其实不然,还有就是global关键字的使用,使用后全局变量如何变化,这就要看数据类型是不是的可变的啦。

Python函数递归

    1.定义

            在调用函数时,直接或间接调用函数本身,这个过程就是递归


def sub(n):
    print(n)
    n = n-1     #减小问题规模
    if n > 0 :  #结束条件
        sub(n) #调用本身
sub(10)

    2.特性

             (1). 必须有一个明确的结束条件

             (2). 每次递归都是让规模变小

             (3). 递归层次越多,效率越低,且存在栈溢出风险

python函数之间变量调用 python函数里面的变量_局部变量

Python匿名函数


            python 使用 lambda 来创建匿名函数,lambda只是一个表达式,lambda的主体是一个表达式,而不是一个代码块,lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。

lambda [arg1 [,arg2,.....argn]]:expression

例子:

def calc(x):      #一般函数
    return x+1
print(calc(10)) 

fun = lambda x:x+1  #匿名函数
print(fun(10))

Python函数--return语句

                return语句[表达式]退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。支持返回函数。

def calc(x):      
    return x+1  #返回值表达式
print(calc(10))
总结:到这里,基本上把Python函数部分基本学完了,总体来说,Python函数这块的知识点不是很复杂,理解起来还是不难的,请广大网友多多指教。