zoukankan      html  css  js  c++  java
  • 变量与递归函数

     全局变量:作用域很大,整个代码内部都有效。局部变量可以使用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.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈这种数据结构实现的,每当进入一个函数调用,

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

    函数递归补充:

    
    
  • 相关阅读:
    MS CRM 2011 RC中的新特性(4)——活动方面之批量编辑、自定义活动
    最近的一些有关MS CRM 2011的更新
    MS CRM 2011 RC中的新特性(6)——连接
    MS CRM 2011 RC中的新特性(7)—仪表板
    参加MS CRM2011深度培训课程——第一天
    MS CRM 2011插件调试工具
    MS CRM2011实体介绍(四)——目标管理方面的实体
    MS CRM 2011 RC中的新特性(3)——客户服务管理方面
    MS CRM 2011 RC中的新特性(8)—数据管理
    ExtAspNet 登陆
  • 原文地址:https://www.cnblogs.com/zypfzw/p/9079746.html
Copyright © 2011-2022 走看看