当前位置: 首页 > article >正文

Python基础大全:Python变量详解

以下是 Python 变量的详细解析:


1. 变量的本质

Python 变量本质上是一个 指向对象的引用(类似标签),而不是存储数据的容器。

  • 变量赋值 a = 10 时,Python 会创建一个整数对象 10,然后让变量 a 指向这个对象。
  • 变量本身没有固定类型,类型属于对象(动态类型特性)。
a = 10     # a 指向整数对象 10
a = "hello" # 现在 a 指向字符串对象 "hello"(合法)

2. 变量的命名规则

  • 由字母、数字、下划线组成,不能以数字开头。
  • 区分大小写(varVar 不同)。
  • 不能使用关键字(如 if, for, class)。
  • 建议使用小写字母和下划线的组合(如 user_name)。

合法示例

name = "Alice"
_age = 25
value2 = 3.14

非法示例

2var = 10    # 以数字开头
class = "Python"  # 使用关键字

在这里插入图片描述


3. 变量类型

Python 是动态类型语言,变量的类型由指向的对象决定。常见类型:

  • 基本类型int, float, str, bool, NoneType
  • 容器类型list, tuple, dict, set
a = 5           # int
b = 3.14        # float
c = "Hello"     # str
d = True        # bool
e = [1, 2, 3]   # list
f = {"key": "value"}  # dict

4. 变量作用域

  • 局部变量:在函数内部定义,仅在函数内有效。
  • 全局变量:在函数外部定义,全局有效。函数内修改全局变量需用 global 关键字。
  • 非局部变量:在嵌套函数中使用外层变量时,需用 nonlocal 关键字。
x = 10  # 全局变量

def func():
    global x
    x = 20  # 修改全局变量
    y = 5   # 局部变量

func()
print(x)  # 输出 20

在这里插入图片描述


5. 可变对象 vs 不可变对象

  • 不可变对象:值不可修改(如 int, float, str, tuple)。修改变量会创建新对象。
  • 可变对象:值可修改(如 list, dict, set)。修改时对象本身变化。
# 不可变示例
a = 10
print(id(a))  # 输出地址 1
a = 20       # 创建新对象
print(id(a))  # 地址改变

# 可变示例
b = [1, 2]
print(id(b))  # 地址 2
b.append(3)   # 修改原对象
print(id(b))  # 地址不变

在这里插入图片描述


6. 变量赋值与内存管理

  • 赋值操作:变量间的赋值是传递引用(浅拷贝)。
  • 深拷贝:使用 copy.deepcopy() 创建完全独立的对象。
list1 = [1, 2, 3]
list2 = list1     # list2 和 list1 指向同一对象
list2.append(4)
print(list1)      # 输出 [1, 2, 3, 4]

import copy
list3 = copy.deepcopy(list1)  # 深拷贝
list3.append(5)
print(list1)      # 输出 [1, 2, 3, 4](原对象未变)
print(list3) #输出[1, 2, 3, 4, 5]

在这里插入图片描述


7. 变量与函数参数

  • 不可变对象参数:函数内修改不会影响外部变量。
  • 可变对象参数:函数内修改会影响外部变量。
def modify(num, lst):
    num += 1      # 不影响外部变量
    lst.append(4) # 修改原对象

a = 10
b = [1, 2, 3]
modify(a, b)
print(a)  # 输出 10
print(b)  # 输出 [1, 2, 3, 4]


8. 特殊变量

  • _:临时变量或忽略值(如 for _ in range(5))。
  • __name__:模块的内置属性,用于判断是否为主程序入口。

9. 常见问题

  • 变量未定义:使用未赋值的变量会触发 NameError
  • 类型错误:对变量执行不兼容操作(如 str + int)会触发 TypeError
  • 意外修改可变对象:多个变量引用同一对象时需谨慎。

总结

Python 变量的核心特点:

  • 动态类型:变量类型由对象决定。
  • 引用语义:变量是对象的标签。
  • 灵活但需注意可变对象和赋值逻辑。

掌握这些概念能帮助你写出更高效、健壮的代码!


http://www.kler.cn/a/564366.html

相关文章:

  • MySQL MHA 部署全攻略:从零搭建高可用数据库架构
  • 【内存泄漏 | 论文速读】Automated Memory Leak Diagnosisby Regression Testing
  • PG 中级认证专家考证事项
  • 分布式Session
  • 信息系统的安全防护
  • 使用 Java 更新 Word 文档中的图表数据-超详细
  • Linux——进程池
  • 【JavaSE-2】数据类型与变量
  • LVS+Keepalived高可用群集配置案例
  • 【实战 ES】实战 Elasticsearch:快速上手与深度实践-1.2.2倒排索引原理与分词器(Analyzer)
  • Lua的table(表)
  • ISP 常见流程
  • 【Mac电脑本地部署Deepseek-r1:详细教程与Openwebui配置指南】
  • WPF11-附加属性
  • SQL笔记#SQL高级处理
  • cve-2025-25064漏洞分析
  • 记录一次bug,xgplayer西瓜视频播放切进度条视频加载失败
  • 服务异步通讯与RabbitMQ
  • Java+Vue+Spring的蛋糕甜品商城(程序+论文+讲解+安装+调试+售后)
  • 如何使用Python编程实现捕获笔记本电脑麦克风的音频并通过蓝牙耳机实时传输