11-Python变量

liftword1个月前 (03-20)技术文章11

1-变量

1-1-概念

用于存储可变数值的内存单元,称为变量

1-2-语法

变量: 给它一个名字,并使用等号(=)将其与某个值关联起来

x = 10 # 创建一个整数变量 y = "Hello" # 创建一个字符串变量 z = True # 创建一个布尔变量

变量名必须遵循一定的规则和约定:

  • 变量名只能包含字母(a-z, A-Z)、数字(0-9)和下划线(_)。
  • 变量名不能以数字开头。
  • 变量名区分大小写(age 和 Age 是不同的变量)。
  • 避免使用Python关键字作为变量名。

1-3-特点

  1. 动态类型:Python是一种动态类型语言,这意味着你不需要声明变量的类型。变量类型是在运行时根据赋给它的值自动确定的
  2. 重新赋值:可以随时改变变量的值,甚至可以将不同类型的值赋给同一个变量
  3. 内存管理:Python会自动管理内存,当你不再需要某个对象时,垃圾收集器会释放相应的内存空间。
  4. 引用传递:当变量被赋值给另一个变量时,实际上是创建了一个指向同一内存地址的新引用,而不是复制了该对象
  5. 三个特征:每个变量都有三个基本特征——标识(id)、类型(type)和值(value)。你可以通过内置函数 id()、type() 来获取这些信息

2-变量种类

在Python中,变量的作用域决定了它们可以在程序的哪些部分被访问。根据作用域的不同,变量可以分为全局变量(global variables)和局部变量(local variables)。以下是关于这两种变量类型的语法、区别以及例子的详细介绍。

2-1-全局变量

2-1-1-定义与特性:

  • 在函数外部定义的变量称为全局变量。
  • 它们可以在整个模块内使用,包括所有函数内部。
  • 如果在函数内部需要修改全局变量,则必须使用 global 关键字声明。

2-1-2-语法示例:

x = 10  # 这是一个全局变量

def some_function():
    print(x)  # 可以直接访问全局变量

some_function()

如果想要在函数内部修改全局变量:

x = 10  # 这是一个全局变量

def modify_global():
    x = 3
    print(x)   # 3
    global x   # 声明我们要使用并修改全局变量x
    x = x + 5  # 修改全局变量的值 
    print(x)   # 15

modify_global()
 # 输出结果先是3,此时3是局部变量,再输出是15,因为全局变量x已被修改

2-2-局部变量

2-2-1-定义与特性:

  • 在函数内部定义的变量是局部变量。
  • 它们仅在定义它们的函数内部有效,函数执行完毕后这些变量将被销毁。
  • 函数内部不能直接修改未用 global 声明的同名全局变量。

2-2-2-语法示例:

def some_function():
    y = 20  # 这是一个局部变量
    print(y)

some_function()
# 下面这行代码会导致错误,因为y是局部变量,在函数外不可访问
# print(y)

尝试修改一个看起来像全局变量但实际上是在函数内部使用的变量时会发生错误:

z = 30  # 全局变量

def attempt_to_modify():
    z = z + 10  # 错误:试图在未声明为全局变量的情况下修改它

attempt_to_modify()  # 这会抛出UnboundLocalError

要修正上述错误,你需要声明 z 为全局变量:

z = 30  # 全局变量

def correctly_modify():
    global z  # 正确地声明我们将使用全局变量z
    z = z + 10  # 现在可以安全地修改全局变量了

correctly_modify()
print(z)  # 输出将是40,全局变量z已被正确修改

2-3-区别总结

  • **作用域**:全局变量在整个模块范围内可用;局部变量只在其定义的函数内部有效。
  • **生命周期**:全局变量从程序开始到结束一直存在;局部变量在函数调用时创建,在函数结束后销毁。
  • **修改规则**:如果不使用 global 关键字,函数内部不能修改全局变量;而局部变量在函数内部可以自由修改。

通过上面的例子,我们可以清楚地看到全局变量和局部变量的区别以及如何正确地在Python中使用它们。

相关文章

分享一个文件整理使用Python小脚本(删除相同文件减小内存占用)

写在前面:脚本作用:在目标文件夹中筛选出大小相同的文件,并打印在屏幕上,这样可以快速找出相同文件,释放硬盘内存。前期部署:安装python并做好配置环境变量(基础)先上代码:import osfrom...

一文读懂 Python 的内存管理

Python 是一种高级编程语言,以其简单性和可读性而闻名。它的主要功能之一是自动内存管理,这对开发人员来说至关重要,因为它抽象了手动内存分配和释放的复杂性。本文旨在深入了解 Python 的内存管...

一文掌握Python内存管理

Python中的内存是由Python内存管理器(Python memory manager)来管理的,它涉及到一个包含所有Python对象和数据结构的私有堆(heap)。Python内存管理器有不同的...

Python 的内存管理与垃圾回收

本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注!作者| 慕课网精英讲师 朱广蔚1. 内存管理概述1.1 手动内存管理在计算机发展的早期,编程语言提供了手动内存管理的机制,例如...

喂!你这个python的内存是不是爆了?喏,拿这个去测试一下看看

你是否曾经为python程序的内存占用问题头疼不已?是否觉得内存泄漏、对象占用过多内存等问题难以排查?别急,今天我要介绍一个神器——pympler,让你轻松搞定python内存分析!01什么是pymp...

解锁 Python 中的内存效率:高级开发都在这样管理内存

#秋日生活打卡季#利用 del 和 gc.collect() 实现最佳性能你有没有遇到过 Python 程序运行得越来越慢?也许它消耗的内存超出了你的预期,却不知道原因。如果你有类似的经历,那你并不...