首页 > 代码库 > python的控制流

python的控制流

python有三种控制流

if条件

for循环

while循环


python的缩进使用强制代码正确对齐,

对齐的是一对;缩进的属于一个块。


------------------------------------

ifexpression

statement

[elif]expression:

statement

[else]:

statement


一个if最多只能和一个else配对,但是可以和多个elif配对。

expression可以是多重的,使用notandor


条件表达式:

min= x if x < y else y #等效于min= (x < y and [x] or [y])[0]

max= x if x > y else y #等效于max= (x > y and [x] or [y])[0]


------------------------------------

whileexpression:

statement

[else:]

statement


条件为真一直执行。


------------------------------------

forval in iterable:

statement

[else]:

statement


通过序列元素迭代:

foreach in seqname:

print(each)

通过序列索引迭代:

foreach in range(len(seqname)):

print(seqname[each])


使用元素和索引迭代:

forindex,each in seqname:

print(index+1,each)


range内建函数:

range(stop):取从0stop的整数,不包括stop

rangestart,stop[, step]:返回startstop之间的整数,间隔为step(默认为1),不包括stop


------------------------------------

break语句:

break用来终止循环(forwhile);继续往后执行。

forwhileelse是可选的,正常情况是在forwhile循环结束后运行一次,如果调用break那么它们的else将不执行。


continue语句:

跳过当前循环块中的剩余语句,继续执行下一次循环。



pass语句:

用来表示一个空的语句块,不做任何事情。


------------------------------------

迭代器:

序列(字符串、元祖、列表)、字典、文件都是可迭代对象。

序列可以直接迭代,字典迭代键,文件迭代整个文件所有行。


迭代器相关的内建函数:

iter(iterable):创建一个可迭代对象的迭代器。

iter(callable,sentinel):创建一个迭代器。

reversed(sequence):返回一个序列的逆序迭代器。

enumerateiterable[,start]):接受一个可迭代对象参数,返回一个枚举迭代器,也就是iter的每个元素的index值和iter值组成的元祖。


all(iterable):如果迭代器所有值都是True,返回True

any(iterable):如果迭代器任意对象都是True,返回True

next(iterable[,default]):返回迭代器的下一个成员,如果设置default到达迭代器末尾返回这个值,否则发出异常StopIteration

------------------------------------

列表解析和生成器:

列表解析的格式:

[exprfor iter_val in iterable]

[exprfor iter_var in iterable if cond_expr]

矩阵:

[(x+1,y+1)for x in range(m) for y in range(n)]

统计文件非空字符总和:

len([wordfor line in file for word in line.split()])


生成器的格式:

(exprfor iter_var in iterable if cond_expr)

统计文件非空字符总和:

sum(len(word)for line in file for word in line.split())

交叉配对:

pairs= ((i,j) for i in list1 for j in list2)

重构:

longest= max(len(x.strip() for x in file)



python的控制流