Python的对象类型

内置对象

数字—-1234, 3.1415, 3+4j
字符串(str)—-‘spam’
列表(list)—-[1, [2, ‘three’], 4]
字典(dict)—-{‘food’: ‘spam’, ‘taste’: ‘yum’}
元组(tuple)—-(1, ‘spam’, 4)
文件(file)—-myfile = open(‘filename’, ‘r’)
其他类型:集合(set)、None、布尔型
****
Python没有类型声明,对象的类型由表达式决定。一旦创建了一个对象,它就只能有固定的操作——只可以对字符串进行字符串相关的操作,对列表进行列表相关的操作。

数字

包括:整型、浮点型、长整型、复数
注意:2**100  # 2的100次方
     结果是1267650600228229401496703205379L,末尾的“L”,当需要额外的精度时,Python自动将整型升级为长整型。

>>>3.1415 * 2           # repr,以全精度的形式显示
6.283000000000000004    
>>>print 3.1415 * 2     # str,以用户友好的形式显示
6.283
repr和str函数都会把任意对象变换成它们的字符串表达

字符串

字符串作为一种序列,可以用索引操作得到某个字符
>>> s = 'spam'
>>>len(s)
4
>>>s[0]    # 第一个字符
's'
>>>s[-1]   # 倒数第一个字符
'm'
>>>s[1:3]  # 切片
'pa'

注意:字符串在Python中不可变,但是可以建立一个新的字符串并以同一个变量名对其赋值
>>>s = 'spam'
>>>s[0] = 'z'
...error text omitted...
TypeError:'str'object does not support item assignment
>>>s = 'z' + s[1:]
>>>s
'zpam'

字符串类型的常用方法:

s.find('pa')  # 返回传入子字符串的第一个字符的下标
s.replace('pa','XYZ')  # 返回替换后的字符串
s.upper()  # 返回大写的字符串
s.lower()  # 返回小写的字符串
s.strip()  # 返回去掉空格、换行符的字符串
s.split(',') # 当字符串中含有“,”时,按“,”分割字符串,返回一个列表

列表

列表是序列的一种,列表支持前述对字符串的切片、索引操作,列表是可变的。
列表没有固定的大小,但不许引用不存在的元素

列表的常用操作:

L.append('NI')  # 在列表末尾添加元素'NI'
L.pop(2)        # 删除列表中索引为2的元素
L.inser(1,'NI)  # 在列表索引为2的位置插入元素'NI'
L.remove('NI')  # 删除元素'NI'
L.sort()        # 默认按照升序排序
L.reverse()     # 对列表进行反转

列表嵌套

M[[1,2,3],[4,5,6],[7,8,9]]  # 二维数组
M[1] = [4,5,6]
M[1][2] = 6

列表的高级操作

实际上是生成器的一种形式
>>>col_2 = [row[1] for row in M]
>>>col_2
[2,5,8]
>>>[row[1] for row in M if row[1] % 2 == 0]
[2,8]

字典

字典是一种映射。
字典通过键而不是相对位置来存储,因此字典中元素的顺序会发生变化。
字典具有可变性。
{键:值}
>>>D = {'food': 'spam', 'quantity': 4, 'color': 'pink'}
>>>D['food']   # 字典通过键来获取值
'spam'
>>>D['country'] = 'china'  # 对新的键赋值会创建该键
>>>D
{'food': 'spam', 'quantity': 4, 'color': 'pink', 'country': 'china} 

字典嵌套

字典与字典、字典与列表可以进行嵌套
>>>rec = {'name': {'first': 'Bob', 'last': 'Smith'},
          'job': ['dev', 'mgr'],
          'age': 40.5}
>>>rec['name']['last']
'Smith'

对键排序:for循环

>>>ks = D.keys()  # 返回键的列表
>>>ks.sort()      # 对键进行排序
>>>for key in ks:
       # some codes
这3步可以合并为一个操作:
>>>for key in sorted(D):
       # some codes

不存在的键:if测试

>>>D.has_key('f')
False

元组tuple

不可改变的列表。
元组是序列,但不可变。
**使用元组的原因:提供完整性约束**

文件file

文件对象是Python代码对电脑上外部文件的主要接口。
调用内置的open函数创建一个文件对象以字符串的形式传递一个外部的文件名以及一个处理模式的字符串。注意:以相对路径给出文件名,文件需要放在py文件的同一目录下。
f = open('filename', 'rb')
f = open('filename', 'wb')
对文件对象有多种操作
f.read()
f.readline()
f.readlines()
f.write()

集合set

数学意义上的集合,元素具有唯一性、无序性。
set支持一般的数学集合操作:
>>>x = set('spam')
>>>y = set(['h', 'a', 'm'])
>>>x & y
set(['a', 'm'])
>>>x | y
set(['a', 'p', 's', 'h', 'm'])
>>>x - y
set(['p', 's'])

占位符对象None

>>>x = None
>>>print x
None
>>>type(x)

你可能感兴趣的:(学习笔记)