一、流程控制结构简介
流程:就是计算机执行代码的顺序
流程控制:对计算机代码执行的顺序进行有效管理,只有流程控制才能实现在开发中的业务逻辑
流程控制的分类:
顺序流程:就是代码一中自上而下的执行结构
选择流程/分支流程:根据在某一步的判断,有选择的执行相应的逻辑;
条件表达式可以是比较运算符/逻辑运算符/复合的运算符
#单分支
if 条件表达式:
一条条的Python代码
一条条的Python代码
.........
#双分支
if 条件表达式:
一条条的Python代码
一条条的Python代码
.........
else:
一条条的Python代码
一条条的Python代码
.........
#多分支
if 条件表达式:
一条条的Python代码
一条条的Python代码
.........
elif:
一条条的Python代码
一条条的Python代码
.........
elif:
一条条的Python代码
一条条的Python代码
.........
.......
else:
一条条的Python代码
一条条的Python代码
.........
循环流程:在一定的条件下,一直重复地去执行某段代码逻辑
while 条件表达式:
一条条的Python代码
一条条的Python代码
.........
for ... in 可迭代的集合对象:
一条条的Python代码
一条条的Python代码
.........
二、选择流程
#单分支
score=int(input("请输入分数"))
if score<=60:
print("成绩不是太理想,继续加油")
pass #空语句,代表结束
print("语句结束")
#双分支
score=int(input("请输入分数"))
if score>=60:
print("成绩及格")
pass
else:
print("成绩不是太理想,继续加油")
pass #空语句,代表结束
print("语句结束")
#双分支
score=int(input("请输入分数"))
if score>=90:
print("你的成绩是A")
pass
elif score>=80:
print("你的成绩是A")
pass #空语句,代表结束
elif score>=70:
print("你的成绩是C")
pass
else:
print("继续加油")
pass
print("语句结束")
多分支练习:
猜拳击的小游戏:0:石头 1剪刀 2:布
import random#直接导入产生随机数的模块
#计算机 人
person=int(input("请出拳【0:石头 1剪刀 2:布】"))
computer=random.randint(0,2)
if person==0 and computer==1:
print("You win!")
pass
elif person==1 and computer==2:
print("You win!")
pass
elif person==2 and computer==0:
print("You win!")
pass
elif person==computer:
print("平手")
pass
else:
print("Losed")
pass
if-else 的嵌套使用
一个场景需要分阶段或者层次,做出不同的处理
要执行内部条件,外部一定要先满足
xuefen=int(input("请输入你的学分"))
if xuefen>10:
grade = int(input("请输入你的成绩"))
if grade>=80:
print("你可以升班...")
else:
print("很遗憾,成绩不达标")
pass
pass
else:
print("表现太差")
pass
三、循环流程
while 语法结构
语法特点
有初始值
条件表达式
变量【计数变量】的自增或者自减,否则会造成死循环
使用条件:循环次数不确定,是依靠循环条件来结束
目的:为了将相似或者相同的代码操作变得更加简洁,是的代码可以重复利用
案例:输出1-100的偶数
index=1
while index<=100:
if index%2==0:
print(index)
pass
index+=1
案例:猜拳游戏
import random#直接导入产生随机数的模块
index=1
while index<=10:
index+=1
#计算机 人
person=int(input("请出拳【0:石头 1剪刀 2:布】"))
computer=random.randint(0,2)
if person==0 and computer==1:
print("You win!")
pass
elif person==1 and computer==2:
print("You win!")
pass
elif person==2 and computer==0:
print("You win!")
pass
elif person==computer:
print("平手")
pass
else:
print("Losed")
pass
案例:打印99乘法表
row=1#行
while row<=9:
col=1 #列
while col<=row:
print("%d*%d=%d"%(row,col,row*col),end=" ")#不换号,加空格
col+=1
pass
print()
row+=1
pass
案例:打印直角三角形
row=1
while row<=7:
j=1
while j<=row:
print('*',end=" ")
j+=1
print()
row+=1
for循环
语法特点:遍历操作,依次取集合容器中的每个值
for 临时变量 in 容器
执行代码块
案例:遍历字符串
tags="湖南工商大学"
for item in tags:
print(item)
pass
案例:range 此函数可以生成一个数据集合列表,range=(起始:结束:步长)步长不能是0,前闭后开
for item in range(1,20,1):
print(item,end=" ")
#实际输出为1-19,前闭后开
break退出循环即结束循环,代表中断
sum=0
for item in range(1,51):
sum+=item
if sum>100:
break
pass
pass
print("sum=%d"%sum)
continue 跳出本次循环。这两个关键字只能用在循环中
sum=0
for item in range(1,51):
if item%2!=0:
continue
print("不执行")
pass
sum+=item
pass
print("sum=%d"%sum)
while 使用:适用于对未知的循环次数,用于判断
for使用:适用于已知的循环次数【可迭代对象遍历】
案例:99乘法表用for实现
for i in range(1,10,):
for j in range(1,i+1):
print("%d*%d=%d"%(i,j,i*j),end=" ")
pass
print()
pass
for --else
for i in range(1,11):
print(i,end="")
if i>=5:
break
pass
else:
print("在上面的循环中,只要出现了break,那么else就不会执行")
account="linran"
pwd="123"
for i in range(3):
zh=input("请输入账号")
pw=input("请输入密码")
if zh==account and pw==pwd:
break
pass
else:
print("您的账号已被锁定")
#能起到一个很好的提示,三次错误,账号被锁定
while--else
index=1
while index<=10:
print(index)
if index==6:
break
pass
index+=1
pass
else:
print("还会执行吗")
四、小结
很简单,有语言基础的基本这些可以直接跳过去
if-else
for循环
while循环
break,continue语句
五、课后习题
猜年龄小游戏,三点需求
允许用户最多尝试三次
每尝试三次后,如果还没猜对,就问用户是否还想继续,如果回答Y或y,就让继续猜三次,以此往复,如果回答N或n,就退出程序
如果猜对了,就直接退出
小王身高1.75,体重80.5kg,请根据BMI(体重除以身高的平方)帮小王计算它的BMI指数,并根据BMI指数:
低于18.5过轻
18.5-25 正常
25-28 过重
28-32 肥胖
高于32 严重肥胖,用if-elif判断并打印结果
六、答案
import random
age=random.randint(1,100)
Tip="Y"
flag=False
while Tip=="Y" or Tip=="y":
for item in range(1,4):
user_age=int(input("请输入你猜的年龄"))
if(user_age<age):
print("你猜的年龄过小")
elif user_age==age:
print("猜对啦")
flag=True
break
else:
print("猜的年龄过大")
if(flag):
break
else:
Tip=input("继续请输入【Y或y】,退出请输入【N或n】")
if Tip=="N" or Tip=='n':
break
height=1.75
weight=80.5
BMI=weight/(height**2)
if BMI<18.5:
print("过轻")
elif BMI<25:
print("正常")
elif BMI<28:
print("过重")
elif BMI<32:
print("肥胖")
else:
print("严重肥胖")