美文网首页python
python 全局变量与局部变量、函数递归

python 全局变量与局部变量、函数递归

作者: little_short | 来源:发表于2018-05-08 11:52 被阅读0次
    局部变量 全局变量
    
    x = 3
    y = 2 * x + 1
    
    print(y)
    
    name = 'sss'
    
    
    def change_name():
        global name  # 修改全局变量
        name = '帅'
    
        print('change_name', name)
    
    
    change_name()
    
    print(name)
    
    变量私有化只能是函数
    
    name = 'kkk'
    
    
    def change_name():
        name1 = '帅'
        name2 = '酷'
        name3 = '美'
    
        print('change_name', name1)
    
    
    change_name()
    
    print(name)
    
    _global
    
    name = 'ski'
    
    
    def ssdf():
        global name
        name = '帅'
        print('sdd', name)
    
    
    def qio():
        print('sdd', name)
    
    
    qio()
    ssdf()
    
    如果函数内 无global关键字 优先读取局部变量,无局部变量读取全局变量,
    不能重新赋值  对于可变对象可以进行内不元素进行操作
    如果函数中有global关键字  可以读取或者重新给全局变量赋值
    
    name = ['sdsd', 'sbsb']
    
    
    def usus():
        # global name
        # name = 'sda'
        name.append('sdwwww')
        print('局部变量', name)
    
    usus()
    
    print(name)
    
    全局变量全部大写,局部变量一律小写
    
    NAME = 'OIU'
    
    def oness():
        name = 'poi'
        print(name)
        def twos():
            name = 'lu'
            print(name)
            def threes():
                name = 'iss'
                print(name)
            print(name)
            threes()
        twos()
        print(name)
    
    oness()
    
    name = 'one'
    
    
    def oness():
        name = 'on1'
    
        def twoss():
            global name
            name = 'two'
    
        twoss()
        print(name)
    
    
    print(name)
    oness()
    print(name)
    
    name = 'one'
    
    
    def oness():
        name = 'on1'
    
        def twoss():
            nonlocal name   #修改上一级  变量
            name = 'two'
    
        twoss()
        print(name)
    
    
    print(name)
    oness()
    print(name)
    
    风湿理论之函数即变量
    
    def foo():
        print('from foo')
        bar()
    
    foo()
    
    def bar():
        print('from bar')
    def foo():
        bar()
        print('from foo')
    
    def foo():
        print('from foo')
        bar()
    
    def bar():
        print('from bar')
    
    foo()
    
    风湿理论
    函数即变量
    
    name = '海风'
    
    
    def huanwei():
        name = '黄伟'
        print(name)
    
        def liuyang():
            name = '刘洋'
            print(name)
    
            def nulige():
                name = '胡志华'
                print(name)
    
            print(name)
            nulige()
    
        liuyang()
        print(name)
    
    
    print(name)
    huanwei()
    print(name)
    
    函数递归  占用内存
    
    def calc(n):
        print(n)
        calc(n)
    
    calc(10)
    
    
    一定要有一个指定的结束条件
    没进入一层递归是,应该比上一次规模减少
    递归效率不高  递归次数太多会导致栈的溢出
    
    def calc(n):
        print(n)
        if int(n / 2) == 0:
            return n
        return calc(int(n / 2))
    
    
    calc(10)
    
    
    person_list = ['alex', 'wupeiqi', 'yuanhao', 'linhaifeng']
    
    
    def ask_way(person_list):
        if len(person_list) == 0:
            return '没人知道'
        person = person_list.pop(0)
        if person == 'linhaifeng':
            return '找到地址'
        print('继续问下一个')
        res = ask_way(person_list)
        return res
    
    
    way = ask_way(person_list)
    print(way)
    

    相关文章

      网友评论

        本文标题:python 全局变量与局部变量、函数递归

        本文链接:https://www.haomeiwen.com/subject/rmvirftx.html