- Python 基础
- Python - 首页
- Python - 概述
- Python - 历史
- Python - 特性
- Python vs 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 - 元组
- 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 - 复制数组
- Python - 反转数组
- Python - 排序数组
- Python - 合并数组
- Python - 数组方法
- Python - 数组练习
- Python 文件处理
- Python - 文件处理
- Python - 写入文件
- Python - 读取文件
- Python - 重命名和删除文件
- Python - 目录
- Python - 文件方法
- Python - OS 文件/目录方法
- Python - OS 路径方法
- 面向对象编程
- Python - OOPs 概念
- 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 - Socket 编程
- Python - URL 处理
- Python - 泛型
- Python 库
- NumPy 教程
- Pandas 教程
- SciPy 教程
- Matplotlib 教程
- Django 教程
- OpenCV 教程
- Python 杂项
- Python - 日期与时间
- Python - 数学
- Python - 迭代器
- Python - 生成器
- Python - 闭包
- Python - 装饰器
- 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 - GUIs
- Python 高级概念
- Python - 抽象基类
- Python - 自定义异常
- Python - 高阶函数
- Python - 对象内部
- Python - 内存管理
- Python - 元类
- Python - 使用元类进行元编程
- Python - 模拟和存根
- Python - 猴子补丁
- Python - 信号处理
- Python - 类型提示
- Python - 自动化教程
- Python - Humanize 包
- Python - 上下文管理器
- Python - 协程
- Python - 描述符
- Python - 诊断和修复内存泄漏
- Python - 不可变数据结构
- Python 有用资源
- Python - 问答
- Python - 在线测验
- Python - 快速指南
- Python - 参考
- Python - 速查表
- Python - 项目
- Python - 有用资源
- Python - 讨论
- Python 编译器
- NumPy 编译器
- Matplotlib 编译器
- SciPy 编译器
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 和 age 的 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 程序时,这将产生以下结果:
100 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)
这将产生以下结果
100
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 'str'> <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 )
这将产生以下结果
x = 10 y = 10 z = 10.0
Python变量的区分大小写
Python变量区分大小写,这意味着Age和age是两个不同的变量。
age = 20 Age = 30 print( "age =", age ) print( "Age =", Age )
这将产生以下结果
age = 20 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 100
这里,创建一个值为1的整数对象,所有三个变量都被分配到相同的内存位置。你也可以将多个对象分配给多个变量。例如:
a,b,c = 1,2,"Zara Ali" print (a) print (b) print (c)
这将产生以下结果
1 2 Zara Ali
这里,值为1和2的两个整数对象分别赋值给变量a和b,一个值为“Zara Ali”的字符串对象赋值给变量c。
Python变量 - 命名约定
每个Python变量都应该有一个唯一的名称,例如a、b、c。变量名可以是有意义的,例如color、age、name等。在命名Python变量时,需要注意某些规则。
- 变量名必须以字母或下划线字符开头。
- 变量名不能以数字或任何特殊字符开头,例如$、(、*、%等。
- 变量名只能包含字母数字字符和下划线(A-z、0-9和_)。
- Python变量名区分大小写,这意味着Name和NAME是Python中的两个不同变量。
- Python保留关键字不能用于变量命名。
如果变量名包含多个单词,应该使用以下命名模式:
驼峰式命名法 - 第一个字母是小写,但每个后续单词的第一个字母是大写。例如:kmPerHour、pricePerLitre
帕斯卡命名法 - 每个单词的第一个字母都大写。例如:KmPerHour、PricePerLitre
蛇形命名法 - 使用单个下划线(_)字符分隔单词。例如: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 100 Zara Nuha 20 100000
示例
以下是无效的Python变量名
1counter = 100 $_count = 100 zara-salary = 100000 print (1counter) print ($count) print (zara-salary)
这将产生以下结果
File "main.py", line 3
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扩展名,并从命令行执行。结果将是:
Area = 200 Perimeter = 60
Python局部变量
Python局部变量是在函数内部定义的。不能在函数外部访问变量。
Python函数是一段可重用的代码,你将在Python - 函数教程中了解更多关于函数的信息。
示例
以下是一个演示局部变量用法的示例
def sum(x,y): sum = x + y return sum print(sum(5, 10))
这将产生以下结果:
15
Python全局变量
在函数外部创建的任何变量都可以在任何函数内访问,因此它们具有全局作用域。
示例
以下是一个全局变量的示例:
x = 5 y = 10 def sum(): sum = x + y return sum print(sum())
这将产生以下结果:
15
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,保留“b”引用的对象10。
此外,如果你将其他值赋给b,则对象10将保持未被引用。
Python的垃圾回收机制释放任何未被引用的对象占用的内存。
Python的同一性运算符is如果两个操作数具有相同的`id()`值,则返回True。
>>> a=b=10 >>> a is b True >>> id(a), id(b) (140731955278920, 140731955278920)