• python基础06--变量与递归函数


    变量:

    局部变量:在子程序中定义的变量

    全局变量:在程序一开始定义的变量

    全局变量作用域是整个程序
    局部变量作用域是定义该变量的子程序。
    当全局变量与局部变量同名时:
    在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
    所以我们写程序时,用大写表示全局变量,用小写表示局部变量
     
    如果函数的内容无global关键字:
    1.有声明局部变量
    NAME="小仙女"
    def test1():
        NAME="小可爱"
        print("我是",NAME)
    test1()
    View Code

    2.无声明局部变量

    NAME="小仙女"
    def test1():
        print("我是",NAME)
    test1()
    View Code

    如果函数的内容有global关键字

    1.有声明局部变量

    NAME="小仙女"
    def test1():
        global NAME
        NAME="小可爱"
        print("我是",NAME)
    test1()
    View Code

    2.无声明局部变量

    NAME="小仙女"
    def test1():
        global NAME
        print("我是",NAME)
    test1()
    View Code

    前向引用:函数即变量

    正确的例子:

    def action():
        print ('in the action')
        logger()
    def logger():
         print ('in the logger')
    action()
    View Code
    def logger():
        print ('in the logger')
    def action():
        print('in the action')
        logger()
    View Code

    嵌套函数与作用域:

    嵌套函数(注意执行的顺序)

    name="alex"
    def name1():
        name="baby"
        def name2():
            name="vera"
            print(name)
        name2()
        print(name)
    name1()
    print(name)
    View Code

    作用域

    name='alex'
    def name1():
        name="baby"
        def name2():
            print(name)
        return name2()
    test=name1()
    View Code

    递归函数:

    def calc(n):
        print(n)
        if int(n/2) ==0:
            return n
        return calc(n/2)
    
    calc(10)
    View Code

    特征:

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

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

    3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)

  • 相关阅读:
    django调试思路
    在python中使用Mongodb
    python中Redis的简要介绍以及Redis的安装,配置
    python3.7中SQLAlchemy安装失败,报错Command errored out with exit status 1
    使用jinjia2时报错 (admin.E403) A ‘django.template.backends.django.DjangoTemplates’ instance must be configured in TEMPLATES in order to use the admin application.
    使用豆瓣API时报错invalid keyid
    Http常用状态码
    python开发工具ipython
    解析GenericOptionsParser
    Sql注入
  • 原文地址:https://www.cnblogs.com/sakura-gyt/p/12700933.html
Copyright © 2020-2023  润新知