• 变量与递归函数


     全局变量:作用域很大,整个代码内部都有效。局部变量可以使用global关键字将全局变量进行修改。

    局部变量:只在有限的区域内起作用,局部变量是定义在函数内部的,外面要用局部变量,只能return。

    只有函数才能将变量私有化。

    如果 函数的内部无global关键字,优先读取局部变量,如果没有局部变量, 则在函数内部只能读取全局变量,但不能进重新赋值。但对于可变类型,可以对内部元素进行操作,如列表.append()方法。

    如果函数中有global关键字,变量本质上就是全局的那个变量,可以进行重新赋值。

    以下是一个错误实例:从中得出的结论就是将global关键字放在函数最前面。

    以下方法就是正确的:意味着将全局变量重新赋值为“自己“”

    全局变量变量名大写,局部变量变量名用小写,这样可以避免因为变量名同名造成的错误。

    函数可以进行嵌套。

    变量中使用的关键字有global和nonlocal,global指代全局变量,而nonlocal指代上一级变量。

     运行结果为:

     

    name="张亚萍"
    def fun():
    name="冯振纹"
    def fun2():
    nonlocal name
    name="很好"
    fun2()
    print(name)
    print(name)
    fun()
    print(name)
    运行结果为

    前向引用:

    def fun():
    name="zhangyaping"
    print(name)
    fun2()
    fun()
    def fun2():
    name="feng"
    print(name) 程序将会报错,因为在调用的时候fun2()没有被加载。

    风湿理论:函数即变量。必须记住这句话,函数在没有调用前不会被执行,只会加载。

    函数递归:

    在函数内部,可以调用其他函数,如果在一个函数内部自己调用自己,则称为函数的递归调用。

    递归特性:

    1.必须有明确的结束条件,return可以终结程序。

    2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少。

    3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈这种数据结构实现的,每当进入一个函数调用,

    栈就会增加一层栈帧,每当函数返回,栈就会减少一层栈帧,由于栈的大小是无限的,所以,递归调用的次数过多,会导致栈溢出)

    函数递归补充:

    
    
  • 相关阅读:
    使用jQuery和CSS自定义HTML5 Video 控件 简单适用
    在win7系统下使用Windows XP Mode 和 Windows Virtual PC搭建window xp系统
    Runtime 解读
    Reachability实时监控网络变化
    关于AsyncSocket
    关于CoreData的用法
    邓白氏编码申请
    Android 到底是个什么东西?
    听 Fabien Potencier 谈Symfony2 之 《What is Symfony2 ?》
    听 Fabien Potencier 谈Symfony2 之 《What is Dependency Injection ?》
  • 原文地址:https://www.cnblogs.com/zypfzw/p/9079746.html
Copyright © 2020-2023  润新知