• Python基础局部变量、全局变量,递归的特性——07


    局部变量与全局变量

    如果函数的内容无global关键字,优先读取局部变量,能读取全局变量,无法对全局变量重新赋值,但是对于可变类型,可以对内部元素进行操作。

    如果函数中有global关键字,变量本质上就是全局的那个变量,可读取可赋值。

    递归

    特性:

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

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

    3、递归效率不高,递归层次过多会导致栈溢出

    例:

    def calc(n):
        if int(n/2) == 0:
            return n
        return (int(n/2))
     
    calc(10)
    #运行结果是:
    10
    5
    2
    1

    一个问路的例子:

    person_list = ['winsdom','xl','hzz','hc']
    def ask_way(person_list):
        if len(person_list) == 0:
            return '没有人知道'
        person = person_list.pop(0)
        if person == 'hc':
            return '%s说,我知道在哪,就在。。。往右走'%person
        print('%s说,我不知道怎么去,我帮你问问[%s]'%(person,person_list))
        return ask_way(person_list)
    
    res = ask_way(person_list)
    print(res)
    #结果是:
    winsdom说,我不知道怎么去,我帮你问问[['xl', 'hzz', 'hc']]
    xl说,我不知道怎么去,我帮你问问[['hzz', 'hc']]
    hzz说,我不知道怎么去,我帮你问问[['hc']]
    hc说,我知道在哪,就在。。。往右走
  • 相关阅读:
    js基础练习题(2)
    js基础练习题(1)
    DOM-BOM-EVENT(7)
    DOM-BOM-EVENT(6)
    DOM-BOM-EVENT(5)
    DOM-BOM-EVENT(4)
    DOM-BOM-EVENT(3)
    Spark学习笔记--Spark在Windows下的环境搭建(转)
    idea下关联spark源码环境(转)
    Spark 性能相关参数配置详解-任务调度篇
  • 原文地址:https://www.cnblogs.com/winsdom/p/9093630.html
Copyright © 2020-2023  润新知