Python学习笔记(二):介绍Python对象类型

以Mark Lutz著的《Python学习手册》为教程,每天花1个小时左右时间学习,争取两周完成。 --- 写在前面的话


2013-7-16 15:00 学习笔记

1,在Python中,数据以对象的形式存在。

2,Python的内置对象:

对象类型
例子
数字1234, 3.14, 999L, 3+4j, Decimal
字符串'hello world'
列表[1, [2, 'three'], 4]
字典{'name': 'mo', 'age': 20}
元组(1, 'name', 2, 'age')
文件myfile = open('myscript', 'r')
其它类型集合、类型、None、布尔型

3,Python支持基本的数学运算,值得一提的是乘方运算 **,例如2**100表示2的100次方。还有一些内置的数学模块可以使用,例如math和random。

import math
print math.pi
print math.sqrt(96)

import random
print random.random()
print random.choice([1,2,3,4])

4,在Python中,字符串是一种序列,并支持分片(Slice)操作,类似Matlab。一般形式为X[i:j],表示“取出在X中从偏移i开始,但不包括j的内容”。

S = 'mathboy'
print len(S)
print S[0],S[-1],S[-2]
print S[1:4],S[1:],S[:5],S[:-1],S[:]
print S+'linlin'
print S*3
输出结果为:

7
m y o
ath athboy mathb mathbo mathboy
mathboylinlin
mathboymathboymathboy
字符串在Python中具有不可变性,因此不能通过对某个位置赋值而改变字符串的内容。例如S[0]='K'是不对的,要实现类似的功能可以这样写:

S = 'K' + S[1:]

既然字符串是一种对象类型,那它也就具有自己的方法属性。例如:

S.find('boy')
S.replace('boy', 'girl')

可以通过dir(S)的方式来打印所有的属性,并通过类似help(S.find)的方式来打印帮助信息

字符串也是支持转义字符的,例如:

S = 'math\0boy\nlin\tlin'
这里的\0并不表示字符串终结。

Python可以使用"""来表示多行字符串,类似PHP中的HereDoc。例如:

S = """mathboy
like programming
and love mo"""
模块re支持字符串的模式匹配。例如:

import re
match = re.match('/(.*)/(.*)/(.*)', '/usr/home/bin')
print match.group(1)
print match.groups()
输出结果为:

usr
('usr', 'home', 'bin')

5,Python中的列表也是一种序列,它只是所有类似于字符串序列的操作。例如:

L = [123, 'mathboy', 3.14]
print len(L)
print L[0],L[-1],L[1:3],L[:-1],L[:]
print L + [6.28, 'linlin']
L.append('linlin')
print L
L.pop(2)
print L
L.sort()
print L
L.reverse()
print L
输出结果:

3
123 3.14 ['mathboy', 3.14] [123, 'mathboy'] [123, 'mathboy', 3.14]
[123, 'mathboy', 3.14, 6.28, 'linlin']
[123, 'mathboy', 3.14, 'linlin']
[123, 'mathboy', 'linlin']
[123, 'linlin', 'mathboy']
['mathboy', 'linlin', 123]

列表可以嵌套,用以实现一个矩阵或多维数组。同时还是支持强大的列表解析表达式。例如:

M = [[1,2,3],
	[4,5,6],
	[7,8,9]]
print [row[1] for row in M]
print [row[1]+1 for row in M if row[1]%2 == 0]
print [M[i][i] for i in [0,1,2]]
print [s*2 for s in 'mathboy']
输出结果:

[2, 5, 8]
[3, 9]
[1, 5, 9]
['mm', 'aa', 'tt', 'hh', 'bb', 'oo', 'yy']
6,Python中的字典不是一种序列,而是一种映射,写在花括号{}中,以“键:值”的形式出现。可以通过赋值的方式创建字典。例如:

D1 = {"name": "mathboy", "age":23}
D2 = {}
D2["name"] = "mo"
D2["age"] = 20
字典可以与列表进行相互嵌套。字典有一些方法属性,例如kes()返回键的列表,has_key()判断是否存在某个键

7,元组写在括号()中,类似列表,但具有不可变性,即一旦创建就不能改变。

8,Python通过内置函数set()来创建集合,并支持一般的集合运算。例如:

X = set('mathboy')
Y = set('colinboy')
print X,Y
print X&Y #intersection
print X|Y #union
print X-Y #difference
print Y-X #difference
运行结果为:

set(['a', 'b', 'h', 'm', 'o', 't', 'y']) set(['c', 'b', 'i', 'l', 'o', 'n', 'y'])
set(['y', 'b', 'o'])
set(['a', 'c', 'b', 'i', 'h', 'm', 'l', 'o', 'n', 't', 'y'])
set(['a', 'h', 'm', 't'])
set(['i', 'c', 'l', 'n'])

9,type()函数可以返回变量的类型







  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值