三、python的流程控制
1.顺序结构
python和shell,java等语言都有一定的执行顺序即顺序结构。
python语言在解释器中的执行顺序是:从上到下依次执行,从左到右执行,所以函数或者变量必须先声明后调用。
2.分支选择结构
在python中只有if选择结构,没有java里的switch...case..结构和shell里的case ...;;;....esac结构,并且与java中的用法规则相似,但是语法格式不一样。
当表达式的结果是数据类型里面的布尔型中的true时,执行if后面:的语句,如果是false执行else:或者elif后面的语句,elif之后的表达时的判断原理与上面相似。
2.1 if 选择结构
if express(result is True or False) : 代码块
2.2 if - else选择结构
if express(result is True or False) : 代码块 else: 代码块
2.3 if -elif-else多层嵌套选择结构
if express(result is True or False) : 代码块 elif express(result is True or False) : 代码块 elif express(result is True or False) : 代码块 ..... else: 代码块
3.循环结构
在python中,循环结构只有for ...in...结构和while结构,没有像java(普通for循环,增强for循环,while循环,do-while循环)里那么丰富。
3.1 for ... in ...循环
和shell里的用法基本相同
语法:
for variable_name in (List,Tuple,Dictionary or range()):
代码块
dic = {‘123‘:123,234:126,2:4} for n in dic: print(n)
结果:
123
234
2
li = [1,2,3,4,6] for n in li: print(n,end=‘‘)
结果:
12346
tup = (2,5,9,0) for n in tup: print(n,end=‘,‘)
结果:2,5,9,0,
接下来说range()对象中的参数,这是创建range类的对象。
下面是官方文档的说明:
class range()
@overload def __init__(self, stop: int) Documentation is missing. The following is copied from class range.
range(stop) -> range object range(start, stop[, step]) -> range object
Return an object that produces a sequence of integers from start (inclusive) to stop (exclusive) by step. range(i, j) produces i, i+1, i+2, ..., j-1. start defaults to 0, and stop is omitted! range(4) produces 0, 1, 2, 3. These are exactly the valid indices for a list of 4 elements. When step is given, it specifies the increment (or decrement).
它里面的参数不能用关键字参数给予赋值,并且值只能是integer。
#反向输出从1-9中以2为步长的数,前两个数表示开始和终止的数,包含左边的数,不包含右边的数, #最右边的是步长,符号按照前面两个数的关系而定,前小后大为正数,前大后小为负,可以是任意值,表示取值间隔。 for n in range(10,1,-2): print(n)
结果是:
8
6
4
2
#输出从0到9的正数 for n in range(10): print(n,end=‘-‘)
结果:0-1-2-3-4-5-6-7-8-9-
3.2 while 循环
while express(result is True or False) :
循环体
当后面的表达式的结果是True时执行循环,如果结果为False时结束循环
n = 0 while n < 4:#这里的表达式是关系表达式 print(n) #在python中没有“++”和“--”的操作,这是因为底层变量储存的不是值而是内存地址,数据的存储方式是用堆的形式储存 n+=1
结果是:
1
2
3
3.3 循环控制
python和java中的循环控制关键字或者说语句是的用法规则完全一样,只不过是多了一个pass
3.3.1 break
直接结束该循环。
n = 1 while n < 9: print(n,end=‘p‘) if n == 5: #当n为5时直接退出循环 break n+=2
结果是:1p3p5p
3.3.2 continue
只结束本层循环,continue后面的语句不执行
n = 1 while n < 9: n+=1 if n == 5: #只不输出5 continue print(n,end=‘*‘)
结果:2*3*4*6*7*8*9*
3.3.3 pass
Python pass是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句。
Python 语言 pass 语句语法格式如下:
pass
实例:
#!/usr/bin/python # -*- coding: UTF-8 -*- # 输出 Python 的每个字母 for letter in ‘Python‘: if letter == ‘h‘: pass print ‘这是 pass 块‘ print ‘当前字母 :‘, letter print "Good bye!"
以上实例执行结果:
当前字母 : P 当前字母 : y 当前字母 : t 这是 pass 块 当前字母 : h 当前字母 : o 当前字母 : n Good bye!