欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python入门笔记(一)

程序员文章站 2022-06-17 13:36:01
...
#列表和元组
#列表分片
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')]	#顺序不定