您的位置:首页 > 编程语言 > Python开发

python学习笔记二

2015-07-10 00:03 441 查看
第13章 for和while循环

1.for比while的执行速度快,python学习手册的作者一直重启强调这一点,绝对不嫌啰嗦

2.for的用法特别多

a.for x in list:,跟C#里的foreach类似,但是对x的修改不能改变原值,除非x是对象的引用(如果要修改原值,只能使用b用法,并且对list[idx]赋值)

b.for idx in range(10):,range可以生成有序整数赋值给idx,可以有三个参数,range(0,10,2),第一个参数为起始值,第二个参数为终止值的下一个值(即不包含此值),第三个参数是步进数(即每次递增的数,这里也可以是负值进行反向步进),range可以和len并用:range(len(list))来获取list元素的索引

c.for item in list[::2]:,这里list[::2]是分片,item是每次取分片中的元素,第三个参数同样是步进数(也可以为负)。分片与a有同样的问题

d.for line in open('file.txt','r'):,这个用法会逐行取文件中的内容

e.for (x,y) in zip(list, list2):,zip会将多个序列中相同索引的元素合并成元组,从而生成一个元组列表

f.for key in Dict:,这里相当于for key in Dict.keys,在新版本中做子简化(虽然语法上有点怪,但是确实少输入了5个字符)

g.for (offset,item) in enumerate(list):,offset得到可迭代对象的索引,item得到其元素

h.L = [x+10 for x in list],列表解析 [结果表达式 for x in list if x满足的条件],居然还可以[x+y for x in 'abc' for y in 'lmn'],结果是['al','am','an','bl','bm','bn','cl','cm','cn']

g.for root,dirs,files in os.walk(path):,遍历文件夹,root保存path根目录路径,dirs保存根目录下的文件夹名(不带完整路径),files保存文件名(不带完整路径)

3.for和while语句比其它语言多一个else块,只有当循环里没有执行过break时才会执行else块里的代码(在以往的编程中确实有遇到这样的需求,可见python满足了经验的需求)

4.Dict的初始化可以使用zip来简化dict(zip(keys, values))

5.zip会以最短长度的序列为准对结果进行截断

6.map(None, list, list2),map与zip类型,不同的是将以第一个参数填充短序列造成的空缺

7.file = open('file.txt','r'),file有三种读取方式

file.read() #读取整个文件(费内存)

file.read(1) #read by charactor,file=open('file.txt','rb')后跟file.read(1)表示读取字节块

file.readline() #read line by line

file.readlines() #read whole file to list include lines

file.xreadlines() #按需求加载文字列

8.迭代器:

file.readline()相当于执行了迭代器file.next(),不同的时当执行file.next()到达文件末尾会抛出StopException异常(其它类型迭代器需要iter(list)转换一下)

sorted(list) #使用迭代将list重新排序

sum(list) #使用迭代将list元素内容相加

any(list) #使用迭代将所有元素or求结果

all(list) #使用迭代将所有元素and求结果

'&&'.join(strlist) #使用迭代在所有字符串元素中间插入&&得到一个字符串

list(listable) #使用迭代创建可迭代对象的list对象

tuple(listable) #使用迭代创建可迭代对象的元组新对象

9.pass是空语句

10.赋值语句不能出现在应该是表达式出现的场合(这个很赞!)例如C语言中的if (x=next())就不能在python中使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: