流程控制
计算机程序在解决某个具体问题时,包括三种情形,即顺序执行所有的语句、选择执行部分的语句和循环执行部分语句,这正好对应着程序设计中的三种程序执行结构流程:顺序结构、选择结构和循环结构。
事实证明,任何一个能用计算机解决的问题,只要应用这三种基本结构来写出的程序都能解决。Python语言当然也具有这三种基本结构。
一、选择结构(if语句)
if <条件1>:
<语句1>
elif <条件2>:
<语句2>
else:
<语句3>
此时,条件1成立时执行语句1,;条件2成立时执行语句2;条件1和条件2都不成立时执行语句3。
实例:
x = int(input("请输入您的总分:")) if x >= 90: print('优') elif x>=80: print('良') elif x >= 70: print('中') elif x >= 60: print('合格') else: print('不合格')
需要注意的是:在使用多个elif语句的分支结构时,应把握好多个条件语句之间的关系。只要有一个条件成立,就会将其后的语句执行,执行后退出整个if语句。
实例:
x = int(input("请输入您的总分:")) if x >= 90: print('优') elif x>=80: print('良') elif x >= 60: print('合格') elif x >= 70: print('中') else: print('不合格')
此时程序中的print('中')语句永远不会执行,因为当输入[70,80)这个区间的数时先判断x>=60成立,则执行其后的语句并输出合格,之后退出if语句。
2、三元运算符
if语句可以使用在一个单语句中,实现三元运算符,基本形式:<表达式1> if <条件> else <表达式2>
3、if语句的嵌套
if<条件>:
if<条件>:
<语句1>
elif<条件>:
<语句2>:
else:
<语句3>
编写条件语句时,应该尽量避免使用嵌套语句。嵌套语句不便于阅读,而且可能会忽略一些可能性。
二、for循环语句
1、for语句的结构:
Python语言中的for语句与其他高级程序设计语言有很大的不同,其他高级语言for语句要用循环控制变量来控制循环。Python中for语句是通过循环遍历某一序列对象(字符串、列表、元组等)来构建循环,循环结束的条件就是对象被遍历完成。
for语句的形式如下:
for <循环变量> in <循环对象>:
<语句1>
else:
<语句2>
else语句中的语句2只有循环正常退出(遍历完所有遍历对象中的值)时执行。
实例:
for num in range(10,20): for i in range(2,num): if num % i == 0: j = num/i print("%d等于%d*%d" % (num,i,j)) break else: print("%d是一个质数" % num)
2、range()函数
for语句的循环对象可以是列表、元组以及字符串,可以通过range()函数产生一个迭代值,以完成计数循环。
range( [start,] stop [, step])
实例:
>>> for i in range(5): print(i) >>> for i in range(0,10,3): print(i)
for语句使用range()函数可以构建基于已知循环次数的循环程序,也可以以range()生成的数字作为索引来访问列表、元组、字符串中的值。
需要注意的是,range() 函数返回的对象表现为它是一个列表,但事实上它并不是,range()函数并不是在调用时一次生成整个序列,而是遍历一次才产生一个值,以减少内存的占用,其本质是一个迭代器。
如:
>>> range(10) range(0, 10) >>> type(range(10)) <class 'range'> >>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
三、while循环语句
for语句以遍历对象的方式构造循环,有时却需要构造一种类似无限循环的程序控制结构或某种不确定运行次数的循环,就需要使用while语句
1、while语句结构:
while语句的基本形式如下:
while<条件>:
<语句1>
else:
<语句2>
与for循环不同的是,while语句只有在测试条件为假时才会停止。
实例:
count = 0 while count < 5: print(count, " is less than 5") count = count + 1 else: print(count, " is not less than 5")
四、break语句、continue语句、pass语句
break语句用在while和for循环中,break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。
continue语句用在while和for循环中,continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。 continue 语句跳出本次循环,而break跳出整个循环。
Python pass是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句。
实例:
for i in range(10): if i%2 == 0: continue print(i) if i>=7: break else: print("循环结束")