计算机程序通常用于处理各种类型的数据(即对象),不同的数据属于不同的数据类型,支持不同的运算操作。计算机程序处理的数据必须放入内存。机器语言和汇编语言直接通过内存地址访问这些数据,而高级语言则通过内存单元命名(即变量)来访问这些数据。
在Python 3中一切皆为对象。对象是某个类(类型)的实例,对象由唯一的id标识。对象可以通过标识符来引用,对象引用即指向具体对象实例的标识符,也称之为“变量”。
变量的声明和赋值
变量的声明和赋值用于把一个变量绑定到某个对象,其语法格式如下:
变量名 = 字面量或表达式
最简单的表达式是字面量,Python基于字面量的值创建一个对象,并绑定到变量;对于复杂的表达式, Python先求值表达式,然后返回表达式结果对象,并绑定到变量。
Python变量被访问之前必须初始化,即赋值(绑定到某个对象),否则会报错。
【实例】变量的声明和赋值示例。
x=0;y=0;z=0 #变量x、y和z均指向int对象0
str1 = "abc" #变量strl指向值为"abc"的str型实例对象
aFloat #变量aFloat未声明和定义(NameError:name'aFloat'is not defined)
链式赋值语句
链式赋值(chained assignment)的语句形式如下:
变量1=变量2=表达式
#**等价于**
变量2=表达式
变量1=变量2
链式赋值用于多个变量赋同一个值:
x = y = 123 #变量x和y均指向int对象123
x #输出:123
y #输出:123
复合赋值语句
运算符 | 描述 | 实例 |
---|---|---|
+= | 加法赋值运算符 | a += b 等价于 a = a + b |
-= | 减法赋值运算符 | a -= b 等价于 a = a - b |
*= | 乘法赋值运算符 | a *= b 等价于 a = a * b |
/= | 除法赋值运算符 | a /= b 等价于 a = a / b |
//= | 整除赋值运算符 | a //= b 等价于 a = a // b |
%= | 取余赋值运算符 | a %= b 等价于 a = a % b |
**= | 幂赋值运算符 | a **= b 等价于 a = a ** b |
删除变量
用户可以使用
del
语句删除不在使用的变量。
【实例】删除变量实例。
x = 1 #变量x指向int对象1
del x #删除变量x
x #变量x未声明和定义
序列解包赋值
Python支持将序列数据类型解包为对应相同个数的变量。
【实例】序列解包实例。
a,b = 1,2 #变量a指向int对象1,变量b指向int对象2
a #输出:1
b #输出:2
!!!注意:变量的个数必须与序列的元素个数一致,否则会产生错误。例如,对于语句“x,y=(1,2,3)
”,由于右侧的元组序列包含3个元素,但是左侧只有两个变量,所以会产生错误。
如果只需要解包部分值,则可以采用特殊变量“_
”。例如:
_, share, price, _=['ACME',50,102.11,(2018,8,21)]
share #输出:50
price #输出:102.11
【实例】使用序列解包实现变量交换。
a,b = (1,2) #变量a指向int对象1,变量b指向int对象2
a,b = b,a #变量a和b的值进行交换
a #输出:2
b #输出:1
说明:在Python语言中,使用“a,b=b,a
”的语句方式可以实现两个变量的值的交换。
常量
Python语言不支持常量,即没有语法规则限制改变一个常量的值。Python语言使用约定,声明在程序运行过程中不会改变的变量为常量,通常使用全大写字母(可以使用下画线增加可阅读性)表示常量名。
【实例】常量示例。
TAX_RATE=0.17 #浮点类型常量TAX_RATE
PI = 3.14 #浮点类型常量PI
ECNU='华东师范大学' #字符串常量ECNU