强类型语言
***********两个对象的比较*******************
1,值比较,对象中的数据是否相同 ==
2,身份比较,两个变量名引用的是否为同一对象
3,类型比较,
例子:
*************核心数据类型*****************
数字:int lang float complex bool
字符:str unicode
列表:list
字典:dict
元组:tuple
文件:file
其他类型:集合(set) frozenset 类类型 none
其他文件类工具:pipes fifos sockets
**************类型转换****************
str() repr() format():将非字符型数据转换为字符
int():转为整数
float():
In [1]: s = "My boss is lihong"
list(s):将字串s转为列表
In [2]: l1 = list(s)
In [3]: print l1
[‘M‘, ‘y‘, ‘ ‘, ‘b‘, ‘o‘, ‘s‘, ‘s‘, ‘ ‘, ‘i‘, ‘s‘, ‘ ‘, ‘l‘, ‘i‘, ‘h‘, ‘o‘, ‘n‘, ‘g‘]
tuple(s):将字串s转为元组
In [4]: t1 = tuple(s)
In [5]: print t1
(‘M‘, ‘y‘, ‘ ‘, ‘b‘, ‘o‘, ‘s‘, ‘s‘, ‘ ‘, ‘i‘, ‘s‘, ‘ ‘, ‘l‘, ‘i‘, ‘h‘, ‘o‘, ‘n‘, ‘g‘)
set(s):将字串s转为集合
In [6]: s1 = set(s)
In [7]: print s1
set([‘ ‘, ‘b‘, ‘g‘, ‘i‘, ‘h‘, ‘M‘, ‘l‘, ‘o‘, ‘n‘, ‘s‘, ‘y‘])
frozenset():将字串s转换为不可变集合
dict(d):创建字典,其中d必须是(key,vlue)的元组序列
In [11]: l3 = [(‘a‘,1),(‘b‘,11),(‘c‘,45)]
In [12]: print l3
[(‘a‘, 1), (‘b‘, 11), (‘c‘, 45)]
In [13]: d1 = dict(l3)
In [14]: print d1
{‘a‘: 1, ‘c‘: 45, ‘b‘: 11}
chr():将整数转换为字符
ord():将字符转换为整数值
hex():将整数转换为16进制字串
bin():将整数转换为2进制字符
oct():将整数转换为8进制字符
数字类型以及:
Python的数字字面量:布尔型,整数,浮点型,复数
True:1
False:0
import math
序列类型
字符类型:
字符串字面量:吧文本放入单引号、双引号或三引号(可以是三个单引号或三个双引号)
如果要使用Unicode编码,则再字符之前使用字符U进行标识,如u"tre"
文档字串:模块,类或函数的第一条语句是一个字符的话,该字符串就成为文档字符串,可以用__doc__属性引用
运算符:
索引运算
切片运算
扩展运算
************获取帮助******************
dir(sir) 获取名称列表
help(str.find)
*************列表类型*****************
容器类型:
任意对象的有序集合,通过索引访问其中的元素,可变对象
支持异构,任意嵌套
定义一个列表:
l1 = [] 空列表
l2 = [1,2,3,4,5]
l3 = [1,‘b‘] 异构
l4 = [[1,2],[‘a‘,‘b‘]] 嵌套
支持在原处修改:
修改指定的索引元素,修改指定的分片,删除语句,内置方法
l2[1] = 32
l2[3] = ‘xyz‘ 修改
l2[1:3] 显示元素1和2
l2[1:3] = [] 删除
l2.del(l2[1:]) 删除
In [42]: l2.append(l3)
In [43]: print l2
[1, 32, 3, ‘xyz‘, 5, 77, 106, [1, ‘b‘]]
In [11]: l3.
l3.append l3.extend l3.insert l3.remove l3.sort
l3.count l3.index l3.pop l3.reverse
In [17]: l1 = [1,2,3]
In [18]: l2 = [‘x‘,‘y‘,‘z‘]
In [19]: l1 + l2 连接两个列表返回一个新列表
Out[19]: [1, 2, 3, ‘x‘, ‘y‘, ‘z‘]
In [20]: l1 * 2 把l1重复两次
Out[20]: [1, 2, 3, 1, 2, 3]
in : 成员关系判断符
not in : 。。。
2 in l1 返回True
range()
复制列表:
l2 = l1 因为列表支持原处修改,所以如果此时修改l1,l2也会跟着修改,这叫浅复制
l3 = l1[:] 此时才是复制一个新的列表赋值给l3,再修改l1,l3不会改变
l5 = copy.deepcopy(l1) 深度复制,也是复制而不是指向同一个地址,如上一样
列表解析: []
**************元组tuple****************
表达式符号:()
容器类型:
任意对象的有序集合,通过索引访问其中的元素,不可变对象,长度固定
支持异构,嵌套
定义:t1 = (1,2,3,4,5,1) 小括号可省略
t1.count(1) 计数
t1.index(3) 返回指定的索引
常见操作:
print t1[1:]
t2 = () 定义空元祖
t3 = ()
+ 可将两个元组合并生成新元组
*
in
not in
*************字典dict*****************
在其他编程语言中又称为关联数组或散列表:
通过键实现元素存取;无序集合;可变类型容器,长度可变,支持异构,支持嵌套
符号{},用逗号分隔,冒号隔开的键值映射表
{}:空字典
In [40]: d1 = {‘x‘:32,‘y‘:[1,2,3,4]}
In [41]: d1[‘y‘][1:]
Out[41]: [2, 3, 4]
In [42]: d1[‘x‘] = 88
In [43]: print d1
{‘y‘: [1, 2, 3, 4], ‘x‘: 88}
字典复制:
d2 = d1.copy() 创建一个与d1相同的字典并赋值给d2
d3 = d1
In [44]: d1.
d1.clear
d1.get 引用一个不存在的键也不会抛出异常
d1.iteritems 返回一个迭代器,i1.next可一个一个的显示,直到耗尽
d1.keys 返回键列表
d1.setdefault
d1.viewitems
d1.copy
d1.has_key 判断键值是否存在
d1.iterkeys
d1.pop 弹出指定(指定键)的键值映射
d1.update 将一个字典合并到当前字典(注意有键相同时)
d1.viewkeys
d1.fromkeys
d1.items 字典拆成元组,每对键值组成一个元组,形成元组列表
d1.itervalues 返回一个迭代器,内容是值
d1.popitem 随机弹出键值映射
d1.values 返回值组成的列表
d1.viewvalues
In [45]: t1,t2 = d1.it
d1.items d1.iteritems d1.iterkeys d1.itervalues
In [45]: t1,t2 = d1.items() 变量解包
In [46]: print t1
(‘y‘, [1, 2, 3, 4])
In [47]: print t2
(‘x‘, 88)
In [48]: m1,m2 = d1
In [49]: print m1
y
In [50]: print m2
x
dict(),定义字典的
************zip******************
In [58]: zip(‘xyz‘,‘123‘,‘abc‘)
Out[58]: [(‘x‘, ‘1‘, ‘a‘), (‘y‘, ‘2‘, ‘b‘), (‘z‘, ‘3‘, ‘c‘)]
In [60]: dict(zip(‘xyz‘,‘123‘)) 构造字典
Out[60]: {‘x‘: ‘1‘, ‘y‘: ‘2‘, ‘z‘: ‘3‘}