您的位置:首页 > 汽车 > 时评 > Python函数 之 变量

Python函数 之 变量

2024/10/18 12:53:39 来源:https://blog.csdn.net/qq_48917474/article/details/140334007  浏览:    关键词:Python函数 之 变量

1.引用【了解】

  1. 定义变量的时候, 变量和数据 都会在内存开辟空间
  2. 变量所对应的内存空间中存储的是 数据所在内存的地址 (平时理解为 将数据存储到变量中即可)
  3. 变量中保存数据的地址,就称为是引用
  4. Python 中所有数据的传递,传递的都是引用(即地址)
  5.  赋值运算符(=), 会改变变量的引用, 即只有 = 可以修改变量的引用
  6. 可以使用 id(变量) 函数,查看变量的引用


2.可变类型与不可变类型【记住】

根据内存中的数据是否允许修改,将数据类型分为可变类型与不可变类型

简单理解: 不使用等号,能不能修改数据值。

                        如果不使用等号,可以修改,则是可变的;

                        如果只能使用等号就可以修改的话,则是不可变的

可变类型: 可以修改

        - 列表(list) list.append()

        - 字典(dict ) dict.pop()

        - 集合(set)

不可变类型: 不允许修改

        - 数字类型(int , float , bool)

        - 字符串(str)

        - 元组(tuple)

注意:如下图,元组为什么能改变数据,因为下图中改变的是列表的数据 


3.局部变量和全局变量

根据变量定义的位置将变量分为局部变量和全局变量

(1)局部变量

1, 在函数内部定义的变量,称为是局部变量

2, 特点

  • - 2.1 局部变量,只能在当前函数内部使用
  • - 2.2 可以在不同函数内定义名字相同的局部变量

3, 生命周期(使用范围)

  • - 3.1 在函数执行(调用)的时候被创建
  • - 3.2 函数执行结束被销毁(删除)

4, 形参可以认为是局部变量

5, 如果想要在函数外部使用局部变量的值, 使用 return 返回

def func1():num = 10  # 局部变量print(num)def func2():num = 20print(num)if __name__ == '__main__':func1()  # 10func2()  # 20func1()  # 10

(2)全局变量 

1, 在函数外部定义的变量

2, 特点

  • - 2.1 全局变量 可以在任意函数内访问(读取)
  • - 2.2 想要在函数内部修改全局变量的引用,需要使用 global 关键字声明(使用 global 关键字可以声明为全局变 量)
  • - 2.3 如果在函数内部出现和全局变量名字相同的局部变量,在函数内部使用的是局部变量

3, 生命周期

  • - 代码执行的时候 创建, 执行结束销毁
# 定义全局变量
g_num = 10def func_1():print(g_num)  # 使用全局变量def func_2():g_num = 20  # 定义局部变量print(g_num)def func_3():global g_num  # 声明为全局变量g_num = 30print(g_num)
if __name__ == '__main__':print(g_num)  # 10func_1()  # 10func_2()  # 20func_1()  # 10print(g_num)  # 10func_3()  # 30 修改了全局变量, 将全局变量的值改为30 了func_1()  # 30g_num = 100func_1()  # 100 修改全局变量的值func_2()  # 20 局部变量func_3()  # 30func_1()  # 30
def func1():list1.append(10)def func2():list1 = [1, 1]  # 定义局部变量, 不影响全局变量list1.append(0)def func3():global list1  # 全局变量list1.pop()  # 删除最后一个数据def func_5():list1.pop()  # 用的全局变量,没有改引用def func4():global list1  # 全局变量list1 = [1]if __name__ == '__main__':list1 = [1, 2]func1()print(list1)  # ①[1, 2] ②[1, 2, 10](√) ③报错func2()print(list1)  # ① [1, 1, 0] ②[1, 2, 10](√) ③报错func3()print(list1)  # [1, 2]# func_5()# print(list1) # ②[1, 2] ①[1]对func4()print(list1)  # [1]


未完待续。。。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com