7-5python函数-变量的作用域

简介: 局部变量是在函数内部定义的变量,只能在函数内部使用;

文章目录


7.5.1、局部变量和全局变量

7.5.2、局部变量

7.5.3 、局部变量的作用

7.5.4、局部变量的生命周期(局部变量作用范围)

7.5.5 、全局变量(全局变量作用范围)

7.5.6、全局变量与局部变量重名

7.5.7、global关键字

7.5.8、 练习


7.5.1、局部变量和全局变量


局部变量是在函数内部定义的变量,只能在函数内部使用;

全局变量是在函数外部定义的变量(没有定义在某一个函数内) ,所有函数

内部都可以使用这个变量,


提示:在其他的开发语言中,大多不推荐使用全局变量-可变范围太大, 导致

程序不好维护!


7.5.2、局部变量


局部变量是在函数内部定义的变量,只能在函数内部使用;

函数执行结束后,函数内部的局部变量,会被系统回收;

不同的函数,可以定义相同的名字的局部变量,彼此之间不会产生影响;


7.5.3 、局部变量的作用


在函数内部使用,临时保存函数内部需要使用的数据


总结


●局部变量

。函数内部定义的变量就是局部变量

。局部变量只能在函数内部使用

。不同的函数局部变量名字可以相同

●全局变量

。函数外部定义的变量就是全局变量

。全局变量在所有函数内部也可以使用

。局部变量能解决的问题,不要通过全局变量解决,尽量少定义全局变量


7.5.4、局部变量的生命周期(局部变量作用范围)

def my_func1():
    a = 1   # a是一个局部变量,只属于my_func1函数
    print(a)
def my_func2():
    a = 2   # a是一个局部变量,只属于my_func2函数
    print(a)
my_func1()  # 调用函数的时候,局部变量a出现了
# my_func1函数调用完毕,a 消失了
# 定义函数的时候局部变量并不存在,只有调用函数的时候局部变量出现了


●局部变量从调用函数的时候开始在内存出现,函数调用完毕,局部变量从内存消失

●如果一个函数内部定义了局部变量,但这个函数没有被调用,那么局部变量也不在内存中存


7.5.5 、全局变量(全局变量作用范围)


全局变量是在函数外部定义的变量,所有函数内部都可以使用这个变量

为了保证所有的函数都能够正确使用到全局变量,应该将全局变量定义放在其他函数上方。


●全局变量一般定义在函数定义的上方

●全局变量从定义变量开始在内存中出现,一直到程序运行完成,和程序起从内存中消失

num1 = 2
def my_func1():
    print(num1)
def my_func2():
    print(num1)
my_func1()
num1 = 10
my_func2()
执行结果
"D:\Program Files1\Python\python.exe" D:/Pycharm-work/pythonTest/函数/15全局变量.py
2
10


7.5.6、全局变量与局部变量重名


●如果在函数内部定义一个变量名字和全局变量重名,那么在这个函数内部只能使用局部变

num1 = 1
def my_func1():
    num1 = 10   # 这里不是为全局变量赋值,这里是定义了一个局部变量,名字和全局变量重名
    print(num1)  # 打印的是局部变量num1的值
    num1 += 1 # 这里改的是局部变量num1的值
def my_func2():
    print(num1)  #  全局变量num1
my_func1()
my_func2()
print(num1)     # 打印的是全局变量的num1的值


注意:只是在函数内部定义了一个局部变量而已,只是变量名相同在函数内部不能直接修改全局变量的值。


7.5.7、global关键字


如果在函数中需要修改全局变量,需要使用global 进行声明


●当需要在函数内部修改全局变量的值,修改前需要用global修饰全局变量的名字

def 函数():
    global 全局变量名
    全局变量名 = 值
num1 = 10
def my_func1():
    global num1  # 函数内部就不存在和全局变量重名的局部变量
    num1 = 1  # 这里是给全局变量num1 修改值
def my_func2():
    print(num1)  # 如果在函数内部不修改全局变量的值,就不用global
print(num1)
my_func1()
print(num1)
执行结果:
"D:\Program Files1\Python\python.exe" D:/Pycharm-work/pythonTest/函数/17在函数内部修改全局变量的值.py
10
1
Process finished with exit code 0
num1 = 10
def my_func1():
    # global num1  # 函数内部就不存在和全局变量重名的局部变量
    num1 = 1  # 这里是给全局变量num1 修改值
def my_func2():
    print(num1)  # 如果在函数内部不修改全局变量的值,就不用global
print(num1)
my_func1()
print(num1)
执行结果
"D:\Program Files1\Python\python.exe" D:/Pycharm-work/pythonTest/函数/17在函数内部修改全局变量的值.py
10
1
Process finished with exit code 0


7.5.8、 练习


定义一个全局变量name="张三”,定义一个函数my_ test1, 在函数my_ test1 内部

修改全局变量name的值为”李四”

name = "张三"
def my_test1():
    global name
    name = "李四"
my_test1()
print(name)
执行结果:
"D:\Program Files1\Python\python.exe" D:/Pycharm-work/pythonTest/函数/18练习-在函数内部修改全局变量的值.py
李四
ished with exit code 0


变量的作用域

a = 1
def my_test1():
    global a
    a = 2
def my_test2():
    a = 3  # 这里的a是一个只在my_test2里面的局部变量
    my_test1()
print(a) # 程序入口在这里
my_test2()
print(a)
执行结果:
"D:\Program Files1\Python\python.exe" D:/Pycharm-work/pythonTest/函数/19变量作用域.py
1
2
Process finished with exit code 0


目录
打赏
0
0
0
0
487
分享
相关文章
|
14天前
|
[oeasy]python073_下划线在python里是什么含义_内部变量_私有变量_系统变量
本文回顾了Python中从模块导入变量和函数的方式,重点讨论了避免本地变量名冲突(local name clashes)的方法。通过`from module import variable as alias`可以为导入的变量重命名,防止冲突。根据PEP8规范,建议避免使用`from module import *`,因为它会导入模块中所有非下划线开头的变量,容易引发冲突。下划线在变量命名中有特殊含义:单个前导下划线表示内部变量,后置下划线用于避免与关键字冲突,双下划线前后包围表示系统变量。总结了下划线的不同用法及其作用。下次将继续探讨更实用的编程技巧。
29 3
Python入门:8.Python中的函数
### 引言 在编写程序时,函数是一种强大的工具。它们可以将代码逻辑模块化,减少重复代码的编写,并提高程序的可读性和可维护性。无论是初学者还是资深开发者,深入理解函数的使用和设计都是编写高质量代码的基础。本文将从基础概念开始,逐步讲解 Python 中的函数及其高级特性。
Python入门:8.Python中的函数
Python入门:2.注释与变量的全面解析
在学习Python编程的过程中,注释和变量是必须掌握的两个基础概念。注释帮助我们理解代码的意图,而变量则是用于存储和操作数据的核心工具。熟练掌握这两者,不仅能提高代码的可读性和维护性,还能为后续学习复杂编程概念打下坚实的基础。
Python入门:2.注释与变量的全面解析
Python学习:内建属性、内建函数的教程
本文介绍了Python中的内建属性和内建函数。内建属性包括`__init__`、`__new__`、`__class__`等,通过`dir()`函数可以查看类的所有内建属性。内建函数如`range`、`map`、`filter`、`reduce`和`sorted`等,分别用于生成序列、映射操作、过滤操作、累积计算和排序。其中,`reduce`在Python 3中需从`functools`模块导入。示例代码展示了这些特性和函数的具体用法及注意事项。
|
1月前
|
Python中的round函数详解及使用示例
`round()`函数是Python内置的用于四舍五入数字的工具。它接受一个数字(必需)和可选的小数位数参数,返回最接近的整数或指定精度的浮点数。本文详细介绍其用法、参数及示例,涵盖基本操作、负数处理、特殊情况及应用建议,帮助你更好地理解和运用该函数。
python之变量的使用
Python 中变量是对象的引用,赋值即为指向内存中对象。创建对象时,解释器分配内存,引用计数管理内存回收。Python 是动态类型语言,变量类型在运行时确定。对象分为可变与不可变,前者可修改内部状态,后者则不行。命名空间管理变量作用域,确保不同区域的变量独立。
[oeasy]python069_当前作用域都有些什么_列表dir_函数_builtins
本文介绍了Python中`dir()`函数的使用方法及其作用。`dir()`可以列出当前作用域内的所有变量和成员,类似于`locals()`,但`dir()`不仅限于本地变量,还能显示模块中的所有成员。通过`dir(__builtins__)`可以查看内建模块中的所有内建函数,如`print`、`ord`、`chr`等。此外,还回顾了`try-except-finally`结构在数据库连接中的应用,并解释了为何`print`函数可以直接使用而无需导入,因为它位于`__builtins__`模块中。最后,简要提及了删除`__builtins__.print`的方法及其影响。
35 0
[oeasy]python059变量命名有什么规则_惯用法_蛇形命名法_name_convention_snake
本文探讨了Python中变量命名的几种常见方式,包括汉语拼音变量名、蛇形命名法(snake_case)和驼峰命名法(CamelCase)。回顾上次内容,我们主要讨论了使用下划线替代空格以提高代码可读性。实际编程中,当变量名由多个单词组成时,合理的命名惯例变得尤为重要。
156 9
[oeasy]python061_如何接收输入_input函数_字符串_str_容器_ 输入输出
本文介绍了Python中如何使用`input()`函数接收用户输入。`input()`函数可以从标准输入流获取字符串,并将其赋值给变量。通过键盘输入的值可以实时赋予变量,实现动态输入。为了更好地理解其用法,文中通过实例演示了如何接收用户输入并存储在变量中,还介绍了`input()`函数的参数`prompt`,用于提供输入提示信息。最后总结了`input()`函数的核心功能及其应用场景。更多内容可参考蓝桥、GitHub和Gitee上的相关教程。
36 0
|
10月前
|
Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
135 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等