1、 条件语句 if/elif/else
if 表达式:
语句
else:
语句
if 表达式:
语句
elif 表达式:
语句
else:
语句
我们知道C语言或者C++语言中有分支语句:switch/case,可以根据变量值选择动作。但python语言中没有提供,如果想要使用分支语句,可以通过字典实现。
python中一条内置的三元表达式:
a if b else c
assert关键字(断言):需要确保程序中的某一条件一定为真时才能让程序正常工作。格式:
assert 表达式, 'message' #在条件不满足时,解释断言
2、 循环语句
while/else循环:通用的循环语句
while 表达式:
语句
else:
语句
这里需要特别注意的是else语句,仅当while循环不是通过break语句跳出的时候,才执行此语句(包括while循环主体一次都没有执行的情况,因为这种情况下没有执行break语句)。通常用来实现需要标志位的算法。
for/else循环:序列迭代,为可迭代对象的每个元素都执行同样的代码块
for x in set:
语句
会把set中的元素按顺序赋值给x。
range(下限,上限,步长):
for x in range(length):
xrange()类似于range(),区别在于range()一次创建整个序列,而xrange()一次只创建一个数,当序列比较大时,xrange比较高效。
- range可以实现的非完备遍历可以通过分片操作替代:
for i in range(0, len(S), 2):
for c in S[::2]:
- range还可以实现在循环过程中对列表的修改:
L = [1, 2, 3]
for x in L:
x += L
L
[1, 2, 3]
上面的操作并没有改变列表。
for i in range(len(L)):
L[i] += 1
但是通过range修改列表的操作可以被列表解析式替代,而且不会对原列表进行原处的修改:
[x+1 for x in L]
zip(序列1, 序列2)实现并行迭代:
当参数长度不同时,会以最短序列的长度为准进行截断。
原则:
能用for尽量不用while:因为for循环比while循环容易写,而且执行比较快。
for循环中最好不使用range: