zoukankan      html  css  js  c++  java
  • 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说,我知道在哪,就在。。。往右走
  • 相关阅读:
    问题 D: 错误探测
    问题 C: 计算矩阵边缘元素之和
    同行列对角线的格子
    矩形交换行
    问题 R: 鸡尾酒疗法
    问题 : 字符串p型编码
    循环结构 整数的个数
    字符串c++字符环
    ISBN码字符串c++
    Uva
  • 原文地址:https://www.cnblogs.com/winsdom/p/9093630.html
Copyright © 2011-2022 走看看