一、Python流程控制
计算机程序在解决某个具体问题时,包括三种情形,即顺序执行所有的语句、选择执行部分的语句和循环执行部分语句,这正好对应着程序设计中的三种程序执行结构流程:顺序结构、选择结构和循环结构。
事实证明,任何一个能用计算机解决的问题,只要应用这三种基本结构来写出的程序都能解决。Python语言当然也具有这三种基本结构。
顺序结构最简单,就是按着写的程序语句一条条按顺序执行,这里不再赘述,今天主要说明选择结构和循环结构。
二、在说明流程控制之前,有必要补充说明下Python的缩进规则
Python的一大特色,强制缩进,目的是为了让程序知道,每段代码依赖哪个条件,如果不通过缩进来区分,程序怎么会知道,当你的条件成立后,去执行哪些代码呢?
在其它的语言里,大多通过{}
来确定代码块,比如C,C++,Java,Javascript都是这样。但Python比较独树一帜,依靠强制缩进来区分代码块,这也是Python简洁的地方,所以我们要多加注意。
Python的缩进有以下几个原则:
- 顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进
- 同一级别的代码,缩进必须一致
- 官方建议缩进用4个空格
三、选择结构
Python中常见的选择结构主要是if...else语句,包括三种,分别是单分支,双分支和多分支。
1、单分支
结构:
if 条件:
满足条件后执行的代码
例如:
score = int(input('你的分数:'))if score > 60: print('合格')
2、双分支
结构:
if 条件:
满足条件后执行的代码
else:
不满足条件后执行的代码
例如:
score = int(input('你的分数:'))if score > 60: print('合格')else: print('不合格')
3、多分支
结构:
if 条件:
满足条件后执行的代码
elif:
上面条件不满足后执行的代码
elif:
上面条件不满足后执行的代码
else:
上述所有条件都不满足就走这里
例如:
score = float(input("请输入你的分数:"))if score > 100: print("你输入的分数不在0到100的范围内。")elif score>=90 and score<=100: print("你的等级是:A")elif score>=80 and score<=89: print("你的等级是:B")elif score>=60 and score<=79: print("你的等级是:C")elif score>=40 and score<=59: print("你的等级是:D")elif score>=0 and score<=39: print("你的等级是:E")else: print("你输入的分数不在0到100的范围内。")
四、循环结构
Python中常见的选择结构主要是for循环和while循环两大类。
1、for循环
Python语言中的for语句与其他高级程序设计语言有很大的不同,其他高级语言for语句要用循环控制变量 来控制循环。Python中for语句是通过循环遍历某一序列对象(字符串、列表、元组等)来构建循环,循环结束的条件就是对象被遍历完成。
结构:
range(5)#是列表range = [0,1,2,3,4]的省写,python3的优化,默认从0开始for i in range(5): print(i)print("循环结束!")
for i in range(1,10,2): #循环从1开始,到10结束(不包括10),每隔2输出一个 print(i)print("间隔输出结束!")
2、while循环
for语句以遍历对象的方式构造循环,有时却需要构造一种类似无限循环的程序控制结构或某种不确定运行次数的循环,就需要使用while语句。
结构1:
#打印0到100间的偶数count = 0while count<=100: print("Loop:",count) count+=2
结构2(Python独有):
count = 0while count <= 5 : count += 1 print("Loop",count)else: print("循环正常执行完啦")
结构3(死循环):
while True:
<语句>
注意:while 是只要后边条件成立(也就是条件结果为真)就一直执行。
例如:
count = 0while True: #True本身就是真呀 print("你是风儿我是沙,缠缠绵绵到天涯...",count)# 友情提示,运行需谨慎
五、循环中止语句
如果在循环的过程中,因为某些原因,你不想继续循环了,怎么把它中止掉呢?这就用到break 或 continue 语句。
break 和continue的作用和区别:
- break用于完全结束一个循环,跳出循环体执行循环后面的语句。
- continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环。
例如:break
count = 0while count <= 100 : #只要count<=100就不断执行下面的代码 print("loop ", count) if count == 5: break count +=1 #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0
再看例如:continue
count = 0while count <= 100 : count += 1 if count > 5 and count < 95: #只要count在6-94之间,就不走下面的print语句,直接进入下一次loop continue print("loop ", count)
六、 选择和循环结构的嵌套使用
小实例:猜年龄游戏
#!/usr/bin/env python#-*- coding:utf-8 -*-# write by congcongcount = 0age = 21while count <= 3 : Age = int(input("输入你猜的年龄:")) if age == Age: print("You have guessed right!") break elif Age > age: print("Guess smaller!") else: print("Guess bigger!") count += 1 if count == 3: print("你是否还想玩?(y or n)") option = input("你的选择:") if option == "y" and option == "Y": count = 0 else: breakprint("--------End----------")