流程控制概要
流程控制即为控制流程,具体指控制程序执行的流程。大体可分为三种结构:顺序结构、分支结构、循环结构
流程控制详解
顺序结构
自上而下依次运行,没啥特别的
- 流程图:
分支结构
if分支结构
- 流程图
- if分支结构的分类
1.单if分支结构 2.if与else连用 3.if与elif、else连用 针对if多条件以及嵌套问题进行详细讲解 语法结构: if 条件1: 条件1成立下执行的代码块 elif 条件2: 条件2成立下执行的代码块 elif 条件3: 条件3成立下执行的代码块 ... else: 上述条件都不满足情况下,需要执行的代码块 经典例题:根据学生的成绩 代码如下: # 学生考试成绩评级 score = input('请输入学生的成绩>>>:') score = int(score) if 0 <= score <= 100: if score >= 90: print('该学生学业成绩评级为优秀') elif score >= 80: print('该学生学业成绩评级为良好') elif score >= 70: print('该学生学业成绩评级为一般') elif score >= 60: print('该学生学业成绩评级为及格') else: print('该学生学业成绩评级为不及格,下学期开学准备补考') else: print('分数输入有误,请重新输入') 在if判断中所有的数据类型也都会自动转换成布尔类型 None,0,空(空字符串,空列表,空字典等)三种情况下转换成的布尔值为False 其余均为True
循环结构
所谓循环就是不断重复的流程
- 流程图
while循环体
while语法:
while 条件:
代码块
while搭配break、continue、else使用
ps: 与break连用,是自内向外破坏一层循环,直接跳出来
与continue连用,是跳过本次循环,仍回到while条件上进一步判断是否继续执行
与else连用时,else后代码的执行与否取决于循环是否遭到break强行终止,没有则运行
实例一:猜年龄
real_age = 24
count = 0
while 1:
if count == 3:
choice = input('您已经尝试了三次,是否继续(y/n)>>>:')
if choice == 'y':
count = 0
else:
print('下次再来')
break
guess_age = input('请输入你猜的年龄>>>:')
guess_age = int(guess_age)
if guess_age > real_age:
print('猜大了,你还有%s次机会' %(2-count))
elif guess_age < real_age:
print('猜小了,你还有%s次机会' %(2-count))
else:
print('猜对了')
break
count += 1
实例二:打印0,1,2,3,5
for i in range(6):
if i == 4:
i += 1
continue
print(i)
i += 1
else:
print('没有被break强制终止,寿终正寝,else正常运行')
for循环体
for语法:
for i in 可迭代对象: # 可迭代对象可以是字符串、列表、字典、元组、集合,当迭代对象为字典时,循环对象为key值
子代码块
for搭配break、continue、else使用,用法基本同while
# 关键字range
1.for i in range(10): # 顾头不顾尾[0,9]
print(i)
2.for i in range(4,10): # 顾头不顾尾[4,9]
print(i)
3.for i in range(1,9,2): # 第三个参数控制步调
print(i) # 1,3,5,7
'''
range在不同版本的解释器中本质不同
python2.X中range会直接生成一个列表 xrange()就弥补了,等同python的迭代器
python3进行优化,range()只占一块空间
'''