自学python系列5 :条件和循环
1.if语句
if语句的语法:关键字本身,判断结果真假的条件表达式,以及当表达式为真或非零执行的代码块
if 真:
ture_suite
1.1多重条件表达式
if not A and B:
ture_suite
1.2单一语句代码块
若一个复合语句的代码块仅包含一行代码,那可以和前面的语句在同一行:
if 真:ture_suite
2.else语句
if 真:
ture_suite
else:
false_suite
利用缩进来解决“悬挂else”
3.elif(else-if)语句
if A:
a
elif B:
b
elif C:
c
else:
d
4.条件表达式(三元操作符)
5.while语句
while的代码块会一直运行,直到循环条件不再为真
5.1一般语法
while 真:
a
5.2计数循环
>>> count=0
>>> while (count<9):
print 'the index is',count
count+=1
>>> while (count<9):
print 'the index is',count
count+=1
5.3无限循环
6.for语句
可用在列表解析和生成器表达式中,python的for更像shell或脚本中的foreach循环
6.1一般语法
for i in iterable:
suite
6.2用于序列类型
for i in 'name':
print i
迭代序列的三种方法:
序列项迭代
>>> namelist=['a','b']
>>> for eachName in namelist:
print eachName
a
b
>>> for eachName in namelist:
print eachName
a
b
通过序列索引迭代
另一个方法是通过序列的索引来迭代
>>> nameList=['a','b']
>>> for nameIndex in range(len(nameList)):
print nameIndex
0
1
>>> for nameIndex in range(len(nameList)):
print nameIndex
0
1
使用项和索引迭代
6.3用于迭代类型
6.4range()内建函数
range(start,end,step=1)
>>> range(2,19,3)
[2, 5, 8, 11, 14, 17]
[2, 5, 8, 11, 14, 17]
>>> range(3,5)
[3, 4]
[3, 4]
>>> range(4)
[0, 1, 2, 3]
[0, 1, 2, 3]
6.5xrange()
有一个很大的范围列表,xrange()可能更为适合
6.6与序列相关的内建函数
sorted()和zip()返回一个序列,reversed()enumerate()返回迭代器
6.7break
结束当前循环然后跳转到下条语句。
6.8continue
6.9pass语句
pass可作为开发的小技巧,标记后来要完成的代码。
>>> def A():
pass
pass
6.10else
6.11迭代器和iter()函数
1.序列,使用迭代器
>>> a=(123,'wyz',2)
>>> b=iter(a)
>>> b.next()
123
>>> b.next()
'wyz'
>>> b.next()
2
>>> b.next()
Traceback (most recent call last):
File "<pyshell#61>", line 1, in <module>
b.next()
StopIteration
123
>>> b.next()
'wyz'
>>> b.next()
2
>>> b.next()
Traceback (most recent call last):
File "<pyshell#61>", line 1, in <module>
b.next()
StopIteration
2.字典
字典的迭代器遍历他的键key。
>>> dicts={('a'):(1840),('b'):(1890),('c'):(1900)}
>>> for a in dicts:
print a,dicts[a]
a 1840
c 1900
b 1890
>>> for a in dicts:
print a,dicts[a]
a 1840
c 1900
b 1890
3.文件
文件对象生成的迭代器自动调用readline()。这样循环可以访问文本文件所有行。