python基础要点(2)-表达式
1, if语句
.一般语法
#cond表达式为真执行,执行express表达式
if cond:
express
.多重条件
#多重条件可以用and,or,not等
if a or not b:
doit
.单一语句块
#单一语句可以写在:号的后面,但不推荐这样写
if you: dowork()
.单else 语句
if cond1:
exp1
else:
exp2
.多else语句
if cond1:
dowork1()
elif cond2:
dowork2()
else:
dowork3()
.三元操作符 (python2.5以上)
x,y = 3,4
v = x if x>y else y
print v # 注:v的值为4
2, while 语句
.一般语法
#一直执行repeat_do函数,直到cond1的值为False或0
while cond1:
repeat_do()
.计数循环
count=0
while count < 9:
dowork()
count+=1
.无限循环
while True:
doforever()
3, for语句
要点:
(1)for循环访问一个可迭代对象(如序列或迭代器)中的所有元素,并在所有元素条目处理过后结束循环
(2)for语句可以很好的用于序列类型(列表,字符串,元组,字典,集合等)
.一般语法
#每次选换item迭代变量被设置为可迭代对象的当前元素给do_repeat_suite语句块使用
for item in iterable:
do_repeat_suite
.用于序列类型
.通过序列项迭代
list = ['tom1', 'tom2','tom3']
for item in list:
print 'name is %s' % item
.通过序列索引迭代
for id in range(len(list)):
print 'name is ', list[id]
.利用索引和项迭代
for id, aname in enumerate(list):
print '%d %s hello' % (id+1, aname)
.range()函数的使用
for v in range(2,19,3):
print "v\t" #2,5,8,11,14,17
其他例子:
range(5) #0,1,2,3,4
range(3,7) #3,4,5,6
4,break语句
特性: 可以直接从for 或 while循环语句中跳出,和C语言的break语句类似
while True:
if a > 9:
break
a=+1
5,continue语句
特性:遇到continue语句时程序终止当前循环,并忽略剩余的语句,回到循环顶端开始下一次迭代.
6,pass语句
特性:表示不做任何事情
if cond1:
dowork()
else:
pass
.在while和for语句中使用else语句
特性:在循环语句中使用else语句,该语句将会在循环结束(正常结束,不是通过break结束)后执行
7,迭代器
特性:
(1)提供了可扩展的迭代器接口.
(2)对列表迭代带来了性能上的增强.
(3)在字典迭代中性能提升.
(4)创建真正的迭代接口, 而不是原来的随机对象访问.
(5)与所有已经存在的用户定义的类以及扩展的模拟序列和映射的对象向后兼容
(6)迭代非序列集合(例如映射和文件)时, 可以创建更简洁可读的代码.
(7)迭代器从根本上说就是有一个next()方法的对象
(8)迭代器还有其他的方法:
reversed() 反序访问一个序列
enumerate(), any(), all()
函数的使用方法可以通过help来获取
.创建一个迭代器
iter(obj) #注:obj必须是一个序列
iter(func, sentinel) #
用类来创建
.迭代器的工作原理
说明iter()的工作原理如下所示:
fetch = iter(seq)
while True:
try:
i = fetch.next()
except StopIteration:
break
do_something_to(i)
#注意for循环会自动处理这个异常
..序列使用迭代
t = ('aa','bb','cc')
for item in t:
print item #aa bb cc
..字典
d = {"name1":"tom1","name2":"tom2"}
##字典的迭代器会遍历它的键值
for item in d:
print d[item] #tom1 tom2
..文件
fp=open('filename')
for aline in fp:
print aline