强类型语言

***********两个对象的比较*******************

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'}