`

python入门笔记(一)

阅读更多
#列表和元组
#列表分片
d[x:y:z]	#z为步长
#序列相加
[1,2,3]+[4,5,6]
[1,2,3,4,5,6]
'hello '+'world'
'hello world'
[1,2,3]+'aa'	#报错
#乘法
'python'*5
'pythonpythonpythonpythonpython'
[None]*10	#初始化10个长度的序列
#成员资格
a in b	#f返回布尔值


#使用字符串
#字符串对象是不可变的
website[-3:]='dom'	#报错
#字符串格式化
format='Hello,%s %s enough for ya?'
values=('world','hot')
print format % values	#Hello,world hot enough for ya?
"""序列只会被解析成一个值,只有字典和元组可以格式化一个以上的值
若文本中存在%,使用%%转义"""
format='%.3f'	#格式化浮点数,精确3位
format='%10.3f'	#格式化浮点数,宽度10,精确3位
format='%.5s'	#前五个字符
'%.*s' % (5,'guido van rossum')	# *,宽度会在元组中读取,guido
#0填充
'%010.2f'%pi
'0000003.14'
#左对齐
'%-10.2f'%pi
'3.14'
#在正数前边加空格,用于对齐
print('% 5d'%10)+'\n'+('% 5d'%-10)F
 10
-10
#不论正负,都加符号
print('%+5d'%10)+'\n'+('%+5d'%-10)F
+10
-10
print '-'*10	#----------

#模板字符串
from string import Template
s=Template('$x,glorious $x!')
s.substitute(x='slurm')	#slurm,glorious slurm!
s=Template('It`s ${x}tastic!')	#替换单词的一部分
"""
若文本中存在$,使用$$转义
substitute()的参数可以是字典
方法safe_substitute()不会因为错误使用$报错
"""
#元组
'%s plus %s equals %s'%(1,1,2)
1 plus 1 equals 2
#字符串方法
#find
'asdfghjkl'.find('asd')	#返回0,若未查询到返回-1,否则返回最左端索引
subject.find('aaa',1)	#提供起始点
subject.find('aaa',1,10)	#提供起始点和结束点,包含第一个不包含第二个
#join
seq=[1,2,3,4,5]
sep='+'
sep.join(seq)	#报错,只能连接字符串列表
seq=['1','2','3','4','5']
sep.join(seq)
'1+2+3+4+5'
dirs='','usr','bin','env'
'/'.join(dirs)
'/usr/bin/env'
print 'C:'+'\\'.join(dirs)
C:\usr\bin\env
#lower 小写
'ABC'.lower()
'abc'
#首字母大写
"that`s all folks".title()
"That`S All Folks"
 
import string
string.capwords("that`s all folks")
"That`s All Folks"
#replace
'This is a test'.replace('is','eez')
'This ezz a test'
#split
'1+2+3+4+5'.split(+)
['1','2','3','4','5']
#strip	去掉两侧空格或字符
'asd '.strip()
'asd'
#translate	和replace方法一样,但只是处理单个字符,优势是同时可以进行多个替换,有时会比replace效率高得多
from string import makestrans
table=makestrans('cs','kz')
len(table)
256
table[97,123]
'abkdefghijklmnopqrztuvwxyz'	#c和s被替换成了k和z,该表可用作translate的参数
makesrans('','')[97,123]
'abcdefghijklmnopqrstuvwxyz'
'this is an incredible test'.translate(table)
'thiz iz an inkredible'
#translate(table[,s])	第二个字符用于指定删除字符
'this is an incredible test'.translate(table,' ')
'thizizaninkredible'

#字典
#dict()函数
items=[('name','Gumby'),('age',42)]
d=dict(items)
d
['age':42,'name','Gumby']
d['name']
'Gumby'
#dict()可通过关键字参数创建字典
d=dict(name='Gumby',age=42)
#如果dict()不带参数,则创建空字典
#常用方法
len(d)	#返回键值对数量
d[k]	#返回k键对应的值
d[k]=v	#将值关联到键上
del d[k]	#删除键k的项
k in d	#检查d中是否含有键为k的项
#字典格式化字符串
phonebook
{'Beth':'9102','Alice':'2341','Cecil':'3258',}
"Cecil`s phone number is %{Cecil}s"%phonebook
"Cecil`s phone number is 3258"
#字典方法
#clear
d.clear()	#青空字典,返回值为none
x={}
y=x
x['key']='value'
y
{'key':'value'}
x.clear()	#针对对象操作
y
{}
#copy和deepcopy
from copy import deepcopy
d={}
d['name']=['Alfred','Bertrand']
c=d.copy()
dc=deepcopy(d)
d[name].append('Clive')
c
{'name':{'Alfred','Bertrand','Clive'}}
dc
{'name':{'Alfred','Bertrand'}}
#fromkeys	初始化字典
{}.fromkeys(['name','age'])
{'age':None,'name':None}
dict.fromkeys(['name','age'],'(unknow)')	#定义默认值,可以直接在字典类型dict上调用
{'age':'(unknow)','name':'(unknow)'}
#get
d={}
print d['name']	#报错
print d.get('name')
None
d.get('name','N/A')	#定义默认值
'N/A'
#has_key()	相当于k in d	,python3不包含此函数
d={}
d.has_key('name')
False
#items和iteritems
d={'a':'aa','b':'bb','c':'cc'}
d.items()
[('a','aa'),('b','bb'),('c','cc')]
it=d.iteritems()	#返回迭代器
list(it)
[('a','aa'),('b','bb'),('c','cc')]	#顺序不定

 

2
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics