计算机程序通常用于处理各种类型的数据(即对象),不同的数据属于不同的数据类型,支持不同的运算操作。

计算机程序处理的数据必须放人内存。

机器语言和汇编语言直接通过内存地址访问这些数据,而高级语言则通过内存单元命名(即变量)来访问这些数据。

在Python3中一切皆为对象。对象是某个类(类型)的实例,对象由唯一的id标识。对象可以通过标识符来引用,对象引用即指向具体对象实例的标识符,也称之为“变量”。

变量的声明和赋值

变量的声明和赋值用于把一个变量绑定到某个对象,其语法格式如下。

变量名=字面量或表达式

最简单的表达式是字面量,Python基于字面量的值创建一个对象,并绑定到变量;对于复杂的表达式,Python先求值表达式,然后返回表达式结果对象,并绑定到变量。

Python变量被访问之前必须初始化,即赋值(绑定到某个对象),否则会报错。

# [例2.15]变量 的声明和赋值示例。

x=0; y=0; z=0     #变量x、y和z均指向int对象0
strl = "abc"      # 变量str1指向值为"abe"的str型实例对象
aFloat            #变量aFloat未声明和定义(NameError: name 'aFloat' is not def ined)

---------------------------------打印结果------------------------------------------

NameError Traceback (most recent call last)
 in 
 5 x=0; y=0; z=0 #变量x、y和z均指向int对象0
 6 strl = “abc” # 变量str1指向值为"abe"的str型实例对象
 ----> 7 aFloat #变量aFloat未声明和定义(NameError: name ‘aFloat’ is not def ined)

NameError: name ‘aFloat’ is not defined

链式赋值语句

链式赋值用于为多个变量赋同一值。

链式赋值(chained assignment)的语句形式如下:

变量1 = 变量2 = 表达式
等价于:
变量2 = 表达式
变量1 = 变量2

# 【例 2.16】 链式赋值语句

x = y = 123
x
y

---------------------------------打印结果------------------------------------------
123
123

复合赋值语句

赋值语句运算符不仅可以简化代码,使程序精炼,而且可以提高程序的效率。

常见的: += - = *= /= %= 等等

# 【例 2.17】复合语句

i = 1
i += 1
i
i *= 2
i

---------------------------------打印结果------------------------------------------

2
4

删除变量

# 【2.18】删除变量
x = 123 
x
del x
x           # 已经删除x ,x 未定义 报错

123

---------------------------------打印结果------------------------------------------

NameError Traceback (most recent call last)
 in 
 3 x
 4 del x
 ----> 5 x # 已经删除x ,x 未定义 报错NameError: name ‘x’ is not defined

序列解包赋值

变量的个数与序列的元素个数要保持一致,否则会出错。

如果只需要解包部分值,则可以采用特殊变量“_”。

# 【例2.19】序列解包 及 变量交换
_ ,x , y = 0, 1 , 2    # 特殊变量"_"
x
y
x,y=y,x   #变量交换
x
y

---------------------------------打印结果------------------------------------------
1
2
2
1

常量

Python语言不支持常量,即没有语法规则限制改变一个常量的值。

Python 语言使用约定,声明在程序运行过程中不会改变的变量为常量,通常使用全大写字母(可以使用下画线增加可阅读性)表示常量名。

#  [例2.21]常量示例。

TAX RATE = 0.17          #浮点类型常量TAX RATE
PI = 3                   #整型常量PI
ECNU = '华东师范大学 '   #字符串常量ECNU