- Python 教程
- Python 教程
- Python - 概述
- Python - 历史
- Python - 特性
- Python 与 C++
- Python - Hello World 程序
- Python - 应用领域
- Python 解释器及其模式
- Python - 环境设置
- Python - 虚拟环境
- Python - 基本语法
- Python - 变量
- Python - 数据类型
- Python - 类型转换
- Python - Unicode 系统
- Python - 文字
- Python - 运算符
- Python - 算术运算符
- Python - 比较运算符
- Python - 赋值运算符
- Python - 逻辑运算符
- Python - 按位运算符
- Python - 成员资格运算符
- Python - 身份运算符
- Python - 运算符优先级
- Python - 注释
- Python - 用户输入
- Python - 数字
- Python - 布尔值
- Python 控制语句
- Python - 控制流
- Python - 决策
- Python - if 语句
- Python - if-else 语句
- Python - 嵌套 if 语句
- Python - Match-Case 语句
- Python - 循环
- Python - For 循环
- Python for-else 循环
- Python - While 循环
- Python - break 语句
- Python - Continue 语句
- Python - pass 语句
- Python - 嵌套循环
- Python 函数和模块
- Python - 函数
- Python - 默认参数
- Python - 关键字参数
- Python - 仅关键字参数
- Python - 位置参数
- Python - 仅位置参数
- Python - 任意或可变长度参数
- Python - 变量范围
- Python - 函数注释
- Python - 模块
- Python - 内置函数
- Python 字符串
- Python - 字符串
- Python - 切片字符串
- Python - 修改字符串
- Python - 字符串连接
- Python - 字符串格式化
- Python - 转义字符
- Python - 字符串方法
- Python - 字符串练习
- Python 列表
- Python - 列表
- Python - 访问列表项
- Python - 更改列表项
- Python - 添加列表项
- Python - 删除列表项
- Python - 循环列表
- Python - 列表推导式
- Python - 排序列表
- Python - 复制列表
- Python - 联接列表
- Python - 列表方法
- Python - 列表练习
- Python 元组
- Python - 元组(Tuple )
- Python - 访问元组项
- Python - 更新元组
- Python - 解压缩元组项
- Python - 循环元组
- Python - 联接元组
- Python - 元组方法
- Python - 元组练习
- Python 集
- Python - 集(sets)
- Python - 访问 Set Items
- Python - 添加 Set Items
- Python - 删除 Set Items
- Python - 循环 Set Items
- Python - 联接 Sets
- Python - 复制 Set
- Python - Set 运算符
- Python - Set 方法
- Python - Set 的练习
- Python 字典
- Python - 字典
- Python - 访问字典项
- Python - 更改字典项
- Python - 添加字典项
- Python - 删除字典项
- Python - 字典视图对象
- Python - 循环字典
- Python - 复制字典
- Python - 嵌套字典
- Python - 字典方法
- Python - 字典练习
- Python 数组
- Python - 数组
- Python - 访问数组项
- Python - 添加数组项
- Python - 删除数组项
- Python - 循环数组
- Python - 复制数组
- Python - 反向数组
- Python - 对数组进行排序
- Python - 连接数组
- Python - 数组方法
- Python - 数组练习
- Python 文件处理
- Python - 文件处理
- Python - 写入文件
- Python - 读取文件
- Python - 重命名和删除文件
- Python - 目录
- Python - 文件方法
- Python OS 文件/目录方法
- Python - os.path 方法
- 面向对象编程
- Python - OOP 概念
- Python - 类和对象
- Python - 类属性
- Python - 类方法
- Python - 静态方法
- Python - 构造函数
- Python - 访问修饰符
- Python - 继承
- Python - 多态性
- Python - 方法覆盖
- Python - 方法重载
- Python - 动态绑定
- Python - 动态类型
- Python - 抽象
- Python - 封装
- Python - 接口
- Python - 软件包
- Python - 内部类
- Python - 匿名类和对象
- Python - 单例类
- Python - 包装类
- Python - 枚举
- Python - 反射
- Python 错误和异常
- Python - 语法错误
- Python - 异常处理
- Python - try-except 块
- Python - try-finally 块
- Python - 引发异常
- Python - 异常链接
- Python - 嵌套 try 块
- Python - 用户定义的异常
- Python - 日志记录
- Python - 断言
- Python - 内置异常
- Python 多线程
- Python - 多线程
- Python - 线程生命周期
- Python - 创建线程
- Python - 启动线程
- Python - 联接线程
- Python - 命名线程
- Python - 线程调度
- Python - 线程池
- Python - 主线程
- Python - 线程优先级
- Python - 守护程序线程
- Python - 同步线程
- Python 同步
- Python - 线程间通信
- Python - 线程死锁
- Python - 中断线程
- Python 网络
- Python - 网络编程
- Python - 套接字编程
- Python - URL 处理
- Python - 泛型
- Python 杂项
- Python - 日期和时间
- Python - math 模块
- Python - 迭代器
- Python - 生成器
- Python - 闭包(closures)
- Python - 装饰器( Decorators)
- Python - 递归
- Python - 正则表达式
- Python - PIP
- Python - 数据库访问
- Python - 弱引用
- Python - 序列化
- Python - 模板
- Python - 输出格式
- Python - 性能测量
- Python - 数据压缩
- Python - CGI 编程
- Python - XML 处理
- Python - GUI 编程
- Python - 命令行参数
- Python - 文档字符串
- Python - JSON
- Python - 发送电子邮件
- Python - 更多扩展
- Python - 工具/实用程序
- Python - 图形用户界面
- Python 高级概念
- Python - 抽象基类
- Python - 自定义异常
- Python - 高阶函数
- Python - 对象内部
- Python - 内存管理
- Python - 元类
- Python - 使用 Metaclasses 进行元编程
- Python - 模拟和存根
- Python - 猴子修补
- Python - 信号处理
- Python - 类型提示
- Python - 自动化教程
- Python - 人性化软件包
- Python - 上下文管理器
- Python - 协程
- Python - 描述符
- Python - 诊断和修复内存泄漏
- Python - 不可变数据结构
Python - 变量
Python 变量
Python 变量是用于在 Python 程序中存储值的预留内存位置。这意味着,当您创建变量时,您会在内存中保留一些空间。
根据变量的数据类型,Python 解释器分配内存并决定预留内存中可以存储哪些内容。因此,通过为 Python 变量分配不同的数据类型,您可以在这些变量中存储整数、小数或字符。
内存地址
属于不同数据类型的数据项存储在计算机的内存中。计算机的内存位置有一个数字或地址,在内部以二进制形式表示。数据也以二进制形式存储,因为计算机按照二进制表示原理工作。在下图中,字符串 May 和数字 18 显示为存储在内存位置。
如果你懂汇编语言,你就会隐藏这些数据项和内存地址,并给出机器语言指令。然而,这对每个人来说都不容易。语言翻译器(如 Python 解释器)执行这种类型的转换。它将对象存储在随机选择的内存位置。Python 内置的 id() 函数返回存储对象的地址。
>>> "May"
May
>>> id("May")
2167264641264
>>> 18
18
>>> id(18)
140714055169352
一旦数据存储在内存中,就应该重复访问它以执行某个过程。显然,从其 ID 中获取数据很麻烦。像 Python 这样的高级语言可以给出合适的别名或标签来引用内存位置。
在上面的示例中,我们将 May 的位置标记为 month,将 18 存储的位置标记为 age。Python 使用赋值运算符 (=) 将对象与标签绑定。
>>> month="May"
>>> age=18
数据对象 (May) 及其名称 (month) 具有相同的 id()。18 岁的 id() 和年龄也相同。
>>> id(month)
2167264641264
>>> id(age)
140714055169352
标签是一个标识符。它通常被称为变量。Python 变量是一个符号名称,它是对对象的引用或指针。
创建 Python 变量
Python 变量不需要显式声明来预留内存空间,或者你可以说创建一个变量。当您为它赋值时,将自动创建 Python 变量。等号 (=) 用于为变量赋值。
= 运算符左侧的操作数是变量的名称,= 运算符右侧的操作数是存储在变量中的值。例如 -
创建 Python 变量的示例
此示例创建不同类型的变量(整数、浮点数和字符串)。
counter = 100 # Creates an integer variable
miles = 1000.0 # Creates a floating point variable
name = "Zara Ali" # Creates a string variable
打印 Python 变量
一旦我们创建了一个 Python 变量并为其分配一个值,我们就可以使用 print() 函数打印它。以下是上一个示例的扩展,展示了如何在 Python 中打印不同的变量:
打印 Python 变量的示例此示例打印变量。
counter = 100 # Creates an integer variable
miles = 1000.0 # Creates a floating point variable
name = "Zara Ali" # Creates a string variable
print (counter)
print (miles)
print (name)
这里,100、1000.0 和 “Zara Ali” 分别是分配给 counter、miles 和 name 变量的值。当运行上述Python程序时,这将产生以下结果 -
1000.0
Zara Ali
删除 Python 变量
可以使用 del 语句删除对数字对象的引用。del 语句的语法是 -
del var1[,var2[,var3[....,varN]]]]
您可以使用 del 语句删除单个对象或多个对象。例如 -
del var
del var_a, var_b
例
以下示例显示了我们如何删除变量,如果我们尝试使用已删除的变量,那么 Python 解释器将抛出错误:
counter = 100
print (counter)
del counter
print (counter)
这将产生以下结果:
Traceback (most recent call last):
File "main.py", line 7, in <module>
print (counter)
NameError: name 'counter' is not defined
获取变量的类型
您可以使用 python 内置函数 type() 获取 Python 变量的数据类型,如下所示。
示例:打印变量类型
x = "Zara"
y = 10
z = 10.10
print(type(x))
print(type(y))
print(type(z))
这将产生以下结果:
<class 'int'>
<class 'float'>
强制转换 Python 变量
您可以借助强制转换来指定变量的数据类型,如下所示:
例此示例演示变量的区分大小写。
x = str(10) # x will be '10'
y = int(10) # y will be 10
z = float(10) # z will be 10.0
print( "x =", x )
print( "y =", y )
print( "z =", z )
这将产生以下结果:
y = 10
z = 10.0
Python 变量区分大小写
Python 变量区分大小写,这意味着 Age 和 age 是两个不同的变量:
age = 20
Age = 30
print( "age =", age )
print( "Age =", Age )
这将产生以下结果:
Age = 30
Python 变量 - 多重赋值
Python 允许在单个语句中初始化多个变量。在以下示例中,三个变量具有相同的值。
>>> a=10
>>> b=10
>>> c=10
您可以在单个赋值语句中完成此操作,而不是单独的赋值,如下所示 -
>>> a=b=c=10
>>> print (a,b,c)
10 10 10
在下面的例子中,我们有三个具有不同值的变量。
>>> a=10
>>> b=20
>>> c=30
这些单独的赋值语句可以合并为一个。您需要在 = 运算符的左侧提供逗号分隔的变量名称,并在右侧提供逗号分隔的值。
>>> a,b,c = 10,20,30
>>> print (a,b,c)
10 20 30
让我们在脚本模式下尝试几个例子: -
a = b = c = 100
print (a)
print (b)
print (c)
这将产生以下结果:
100
100
在这里,创建一个值为 1 的整数对象,并且所有三个变量都被分配到相同的内存位置。您还可以将多个对象分配给多个变量。例如 -
a,b,c = 1,2,"Zara Ali"
print (a)
print (b)
print (c)
这将产生以下结果:
2
Zara Ali
在这里,两个值为 1 和 2 的整数对象分别分配给变量 a 和 b,一个值为“Zara Ali”的字符串对象分配给变量 c。
Python 变量 - 命名约定
每个 Python 变量都应该有一个唯一的名称,如 a、b、c。变量名称可以是有意义的,如颜色、年龄、名称等。在命名 Python 变量时,应注意某些规则:
- 变量名称必须以字母或下划线字符开头
- 变量名称不能以数字或任何特殊字符(如 $、(、*、% 等)开头。
- 变量名称只能包含字母数字字符和下划线(A-z、0-9 和 _ )
- Python 变量名称区分大小写,这意味着 Name 和 NAME 是 Python 中的两个不同变量。
- Python 保留关键字不能用于命名变量。
如果变量的名称包含多个单词,我们应该使用这些命名模式 -
- Camel 大小写 - 第一个字母是小写字母,但每个后续单词的第一个字母是大写的。例如:kmPerHour、pricePerLitre
- Pascal 大小写 - 每个单词的第一个字母为大写。例如:KmPerHour、 PricePerLitre
- Snake 大小写 - 使用单下划线 (_) 字符分隔单词。例如:km_per_hour、price_per_litre
以下是有效的 Python 变量名称:
counter = 100
_count = 100
name1 = "Zara"
name2 = "Nuha"
Age = 20
zara_salary = 100000
print (counter)
print (_count)
print (name1)
print (name2)
print (Age)
print (zara_salary)
这将产生以下结果:
100
Zara
Nuha
20
100000
例
以下是无效的 Python 变量名称:
1counter = 100
$_count = 100
zara-salary = 100000
print (1counter)
print ($count)
print (zara-salary)
这将产生以下结果:
1counter = 100
^
SyntaxError: invalid syntax
例
一旦使用变量来标识数据对象,就可以在没有其 id() 值的情况下重复使用它。在这里,我们有一个矩形的高度和宽度变量。我们可以用这些变量来计算面积和周长。
>>> width=10
>>> height=20
>>> area=width*height
>>> area
200
>>> perimeter=2*(width+height)
>>> perimeter
60
在编写脚本或程序时,使用变量尤其有利。以下脚本也使用上述变量。
#! /usr/bin/python3
width = 10
height = 20
area = width*height
perimeter = 2*(width+height)
print ("Area = ", area)
print ("Perimeter = ", perimeter)
使用扩展名保存上述脚本.py并从命令行执行。结果将是 -
Perimeter = 60
Python 局部变量
Python 局部变量在函数内部定义。我们不能访问函数外部的变量。
例
以下示例显示了局部变量的用法:
def sum(x,y):
sum = x + y
return sum
print(sum(5, 10))
这将产生以下结果 -
Python 全局变量
在函数外部创建的任何变量都可以在任何函数中访问,因此它们具有全局范围。
例以下是全局变量的示例 -
x = 5
y = 10
def sum():
sum = x + y
return sum
print(sum())
这将产生以下结果 -
Python 中的常量
Python 没有任何正式定义的常量,但是您可以通过使用带有下划线的全大写名称来指示要被视为常量的变量。例如,名称 PI_VALUE 表示您不希望以任何方式重新定义或更改变量。
Python 与 C/C++ 变量
变量的概念在 Python 中的工作方式与 C/C++ 中的工作方式不同。在 C/C++ 中,变量是命名的内存位置。如果 a=10 和 b=10,则两者都是两个不同的内存位置。让我们假设它们的内存地址分别是 100 和 200。
如果为“a”分配了不同的值 - 比如 50,地址 100 中的 10 将被覆盖。
Python 变量引用的是对象,而不是内存位置。对象存储在 只内存一次。多个变量实际上是同一对象的多个标签。
语句 a=50 在内存中的其他位置创建一个新的 int 对象 50,使对象 10 由“b”引用。
此外,如果将其他值赋给 b,则对象 10 将保持未被引用。
Python 的垃圾收集器机制会释放任何未引用的对象占用的内存。
如果两个操作数具有相同的 id() 值,则 Python 的身份运算符返回 True。
>>> a=b=10
>>> a is b
True
>>> id(a), id(b)
(140731955278920, 140731955278920)