1.概述
# 表示之后的字符为Python注释
\n 标准的行分隔符
\ 继续上一行
; 两个语句连接在一行
: 将代码块的头和体分开
语句(代码块)用缩进块的方式体现
Python主程序代码无论模块是被导入还是被直接咨询,都是通过检查__name__变量的值然后再执行相应的处理。
1. 如果模块是被导入,__name__的值为模块名字
2. 如果模块是被直接执行,__name__的值为'__main__'
2.变量
变量无须事先声明
变量无须指定类型
程序员不用关心内存管理
变量名会被回收
del语句能够直接释放资源
2.1.基础
Python语言中,等号(=)是主要的赋值操作符(其他的是增量赋值操作符),变量在第一次被赋值时自动声明。
y=(x=x+1) #错误:赋值语句不是合法表达
x=x+1 改写为 x+=1 #增量赋值
x=y=z=1 #多重赋值
x,y,z=1,2,'aaa' 或 (x,y,z)=(1,2,'aaa') #多元赋值
Python标识符规则:
1. 第一个字符必须是字母或者下划线(_)
2. 剩余的字符可以是字母和数字或者下划线
3. 大小写敏感
专用下划线标识符:
Python用下划线作为变量前缀和后缀指定特殊变量
1. _XXX 不用 from module import * 导入
2. _XXX_ 系统定义名字
3. _XXX 类中的私有变量名
2.2.关键字
3.对象
Python使用对象模块来存储数据,所有的Python对象都拥有3个特性:身份,类型和值
· 身份:每个对象都有唯一的身份标识 id()
· 类型:对象的类型决定该对象可以保存什么类型的值 type() ,该内建函数返回的是对象而不是简单的字符串
· 值:对象标识的数据项
3.1.标准数据类型
标准数据类型也叫基本数据类型
· Integer 整型
· Boolean 布尔型
· Long integer 长整型
· Floating point real number 浮点型
· Complex number 复数型
· String 字符串
· List 列表
· Tuple 元祖
· Dictionary 字典
3.2.其他内建类型
· 类型
· Null对象(None)
· 文件
· 集合/固定集合
· 函数/方法
· 模块
· 类
3.3.标准类型操作符
对象值比较:
操作符
功能
expr1 < expr2
expr1 小于 expr2
expr1 > expr2
expr1 小于 expr2
expr1 <= expr2
expr1 小于等于 expr2
expr1 >= expr2
expr1 大于等于 expr2
expr1 == expr2
expr1 等于 expr2
expr1 != expr2
expr1 不等于 expr2
expr1 <> expr2
expr1 不等于 expr2
对象身份比较:
操作符
功能
obj1 is obj2
obj1和obj2是同一个对象
obj1 is not obj2
obj1和obj2不是同一个对象
eg:a is b 等价于 id(a) == id(b)
布尔类型:
操作符
功能
not expr
expr的逻辑非(否)
expr1 and expr2
expr1和expr2的逻辑与
expr1 or expr2
expr1和expr2的逻辑或
3.4.标准类型内建函数
函数
功能
备注
type(obj)
得到一个对象的类型,并返回相应的type对象
cmp(obj1,obj2)
比较obj1和obj2,根据比较结果返回整型i
i<0 if obj1
i>0 if obj1>obj2
i=0 if obj1=obj2
如果是用户自定义对象,cmp()会调用该类的特殊方法__cmp__()
repr(obj)或`obj`
返回一个对象的字符串表示
repr()函数得到的字符串可以用来重新获得对象 obj=eval(repr(obj))
str(obj)
返回对象适合可读性好的字符串表示
3.5.类型工厂函数
Python2.2统一了类型和类,所有的内建类型也都是类,故此内建转换函数都变为了工厂函数,当调用时实际上是生成该类型的一个实例。
int()
long()
float()
complex()
str()
unicode()
basestring()
list()
tuple()
type()
dict()
bool()
set()
frozenset()
object()
classmethod()
staticmethod()
super()
property()
file()
3.6.标准类型的分类
以存储模型为标准的类型分类:
分类
Python类型
标量/原子类型
数值(所有的数值类型), 字符串(全部是文字)
容器类型
列表,元组,字典
以更新模型为标准的类型分类:
分类
Python类型
可变类型
列表,字典
不可变类型
数字,字符串,元组
以访问模型为标准的类型分类:
分类
Python类型
直接访问
数字
顺序访问(从0索引)
字符串,列表,元组
映射访问
字典