美文网首页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 之路03 - Python基础3

    本节内容 函数与函数式编程 函数式编程之参数详解 局部变量与全局变量作用域嵌套函数 递归 函数式编程介绍 高阶函数...

  • C/C++知识点分享(16)

    1、statac全局变量、局部变量、函数与普通全局变量、局部变量、函数,static全局变量与普通的全局变量有什么...

  • 函数、函数的不定长参数、全局变量与局部变量、递归函数

    本节内容:1.函数2.不定长参数 3.全局变量与局部变量 4.递归函数 1.函数 1.1函数的定义 函数:一块具有...

  • python

    函数内全局变量赋值 Python中有局部变量和全局变量,当局部变量名字和全局变量名字重复时,局部变量会覆盖掉全局变...

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

  • python变量区域的一个坑

    python有两种变量,全局变量和局部变量。 全局变量的scope是整个module,局部变量是函数或者class...

  • Python篇-函数(二)函数结构与存储

    一 : 全局变量与局部变量 全局变量,函数内部直接使用 函数内部的局部变量 global 使用global相当于引...

  • 关于JS中的作用域链

    1. 全局变量与局部变量 全局变量:定义在函数外部的变量可以被叫做全局变量局部变量:定义在函数内部的变量,但是如果...

  • 函数

    变量 python中的变量也分为全局变量和局部变量。 局部变量 位置:在函数内部定义的变量 作用范围:这个函数内部...

  • 3-Python 函数(1)

    课程概要:1、认识函数2、形参与实参3、全局变量与局部变量4、函数的使用与返回值5、文档字符串(Python中特有...

网友评论

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

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