Python入门2

#20100729
'''
#寻求帮助
#调用内置dir函数,将返回一个列表,其中包含了对象的属性
#一般来说以下双划线开头并结尾的变量名是用来表示Python实现细节的命名模式,在列表中没有下划线的属性是字符串对象能够调用的方法
S = 'Samp'
print dir(S)
#dir函数简单地给出了方法的名称。查询他们是做什么的,你可以将其传递给help函数。
print help(S.index)
a = 5
print dir()
del a
print dir()
#help是一个内置函数,所谓内置函数,就是在Python中被自动加载的函数,任何时候都可以用。参数分两种
#1、如果传一个字符串做参数的话,它会自动搜索以这个字符串命名的模块,方法,等
#2、如果传入的是一个对象,就会显示这个对象的类型的帮助

b = [1,2,3]
help(b)
#查看append的用法
help(b.append)
b.append(4)
print b
b.append('NI HAO')
print b
'''

#编写字符串的其它方法;;;
C = 'A/nB/tC'
print len(C)
print C
#Python提供了ord和chr两个内置的函数,用于字符与ASCII码之间的转换
print ord('d')
print chr(97)
#Python允许字符串包括在单引号或双引号中(他们代表着相同的东西),它也能够在三个引号(单引或双引号)中表示多行字符串的形式。当采用这种形式的时候,所有的行都合并在一起,并在每一行的末尾增加了换行符。
msg = """
aaaaaaaa
bbbb'''bbbbbbbbb""bbbb’bbb
cccvvccc"""

print msg

#匹配模式
#字符串对象的方法能够支持基于模式的文本处理。需要导入一个re的模块,这个模块包含了类似搜索、分割和替换等调用,但因为使用模式去定义子字符串,可以更通用一些:

match = re.match('Hello[ /t]*(.*)world','Hello     NiHao Python world')
print match.group()
print match.group(1)

match = re.match('/(.*)/(.*)/(.*)','/usr/local/mysql')
print match.group()
print match.group(1)
print match.group(2)
print match.group(3)
'''
re.match的函数原型为:re.match(pattern, string, flags)
第一个参数是正则表达式,这里为"(/w+)/s",如果匹配成功,则返回一个Match,否则返回一个None;
第二个参数表示要匹配的字符串;
第三个参数是标致位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等
'''
text = "JGood is a handsome boy, he is cool, clever, and so on..."
m = re.match(r"(/w+)/s", text)
if m:
    print m.group(0), '/n', m.group(1)
else:
    print 'not match'
#re.search
#re.search函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回,如果字符串没有匹配,则返回None
text = "JGood is a handsome boy, he is cool, clever, and so on..."
m = re.search(r'/shan(ds)ome/s', text)
if m:
    print m.group(0), m.group(1)
else:
    print 'not search' 
'''
re.search的函数原型为: re.search(pattern, string, flags)
每个参数的含意与re.match一样。
re.match与re.search的区别:re.match 只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。
'''

#列表
#Python的列表对象是这个语言提供的最通用的序列。列表是一个任意类型的对象的位置相关的有序集合,它没有固定大小。不像字符串,其大小可变的,通过对偏移量进行赋值以及其他各种列表的方法进行调用,列表确实能够修改其大小。
#序列操作
#类表是序列的一种
L = [123,'spam',1.23]
print len(L)
#能够对列表进行索引,切片等操作
print L[0]
print L[:-1]
print L + [4,5,6]
print L
#列型特定的操作
#列表没有特定的约束,
#append方法扩充了列表的大小并在列表的尾部插入一项
L.append('Ni')
print L
#pop方法(等效于del的操作),移除给定偏移的一项,从而让列表变小。
L.pop(2)
print L
L.pop(0)
print L
#insert可在任意位置后加入一项
L.insert(0, 'Test')
print L
#可指定任意一项内容进行删除
L.remove('Ni')
print L

#大多数列表的方法都会改变列表对象,而不是创建一个新的列表
M = ['bb','dd','aa','cc']
#sort方法,默认是按照升序对列表进行排序
M.sort()
print M
#reverse,对列表进行了翻转,切忌是对原列表(或修改后的列表)进行翻转。而不是所谓的降序排列。
M.reverse()
print M

##边界的检查
#尽管列表没有固定大小,但仍然不允许引用不存在的元素。
print L
#print L[99]

##嵌套
#python核心数据类型的一个优秀的特性就是它们支持任意的嵌套,能够任意的组合对其进行嵌套,并可以多层次的嵌套都可以。
M = [[1,2,3],[4,5,6],[7,8,9]]
print M
print M[1][2]
#第一个操作,是读取了第2个元素,第二个操作是读取了那个元素内的的第三个元素

##类表解析
#处理矩阵的强大工具,假设我们需要从列举的矩阵中提取第二列,因为矩阵式按照行进行存储的。所以可以通过简单的索引即可获取行,使用列表解析既可以同样简单的获得列
col2 = [row[1] for row in M]
print col2
print M
col3 = [row[2] for row in M]
print col3
col4 = [row[1] + 2 for row in M]
print col4
col5 = [row[1] for row in M if row[1]%2 == 0]
print col5
col6 = [row[1] for row in M if row[1]%2 != 0]
print col6

print M
#列表解析创建了新的列表作为结果,但是能够在任何可迭代的对象上进行迭代。
diag = [M[i][i] for i in [0,1,2]]
print diag

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值