条件语句
if相关
格式:
1) if expression : statement #只有一个if并且代码块只有一行,可以直接写在:后面
2) if expression:
statement
else:
statement
3) if expression:
statement
elif expr2:
statement
elif ... :
...
else:
statement n
三元操作符
X if C else Y
while / for and break / else
while循环基本结构
while xxx:
statement
for循环基本结构
for xx in iterable:
statement
循环+else
loop
if ...:
xxx
break
else:
statement
循环+else结构,指的是如果循环完成,则执行else中的语句
continue与c / java中一样
pass: nop
迭代器
迭代器的要求:
提供next()方法,每次都取出下一个对象。当next到末尾时,抛出一个StopIteration异常
迭代器的使用:
for循环可以支持所有可迭代的对象 (列表、字典、文件。。。)
使用迭代器时不应当改变其内容
创建迭代器
对一个对象调用 iter() 就可以得到它的迭代器. 它的语法如下:
iter(obj)
iter(func, sentinel )
如果是传递两个参数给 iter() , 它会重复地调用 func , 直到迭代器的下个值等于sentinel
列表解析
语法
[expr for iter_var in iterable if cond_expr] #[]不能省略
结果:
根据if条件,对iterable中所有元素进行expr,并返回一个结果列表
1. 不满足if条件的元素会被忽略,不会在结果列表中
2. 满足if条件的元素会进行expr
3. 最后会创建一个新列表保存结果
eg
>>> a = [1,2,3,4,5,6]
>>> p = [value*2 for value in a if value%2==0]
>>> print p
[4, 8, 12]
>>>
生成器表达式
语法
(expr for iter_var in iterable if cond_expr) #()可以省略
特点(与列表解析的区别)
表达式返回的是一个生成器。这个生成器会根据要求,把元素一个一个“生成出来”
优点:节约内存空间,在很多情况下也能提高速度
例子:
return max(len(x.strip()) for x in open('/etc/motd')) #统计/etc/motd文件中最长的一行
posted on 2011-06-13 15:40
Antony Lee 阅读(196)
评论(0) 编辑 收藏 所属分类:
Python学习笔记