day7: python functions written: Scope function

Disclaimer: This article is a blogger original article, follow the CC 4.0 BY-SA copyright agreement, reproduced, please attach the original source link and this statement.
This link: https://blog.csdn.net/weixin_43264177/article/details/102754205
# @time:2019/10/26 10:38
# @Author:coco
# @File:02函数的作用域.py
# @software:PyCharm
"""
函数的作用域:在函数内部中定义的变量,只有在函数中才能够使用

局部变量:定义在函数内部的变量叫做局部变量
全局变量:直接定义在文件中的变量,叫做全局变量,在该文件中任何地方都访问
"""

a = 100

def func():
    b=100
    print(a)
    print(b)
func()

operation result:
Here Insert Picture Description

# @time:2019/10/26 10:47
# @Author:coco
# @File:03在函数内部定义全局变量.py
# @software:PyCharm

# 加一个global,让b变成全局变量,不加会报错
# 在函数内部声明全局变量
def func():
    global b
    b = 100

func()

print(b)


# 扩展知识点
# aa是一个全局变量,所以可以func2可以使用
def func1():
    aa = 11

    def func2():
        print(aa)
    func2()
func1()

# 内部嵌套函数可以用nonlocal
def func3():
    cc = 11

    def func4():
        nonlocal cc #使用nonlocal声明外部函数的局部变量,可以在嵌套函数内部修改外部函数的局部一
        cc += 1
        print(cc)

    func4()
    print(cc)
    
func3()

operation result:
Here Insert Picture Description

# @time:2019/10/26 11:02
# @Author:coco
# @File:04全局变量和局部变量练习.py
# @software:PyCharm

""""
变量的查找过程:由内向外去找的,先找自身这一层作用域名有没有,如果没有才会去外面找
"""
a = 100

# 结果是报错:在func()函数中定义了一个局部变量,在定义前使用了,函数内部的a是没有的
# 如果在函数内部定义的局部变量和全局变量重名,那么最好把局部变量的定义放在该函数的最前面
def func():
    print(a)
    a = 11
    # a=11  #这样不会报错
    # print(a)

func()
print(a)

operation result:
Here Insert Picture Description

Guess you like

Origin blog.csdn.net/weixin_43264177/article/details/102754205