Content
- if-else语句(if语句的嵌套使用)
- while循环
- for循环
- break、continue语句
- 多条件与短路运算
流程:就是计算机执行代码的顺序
流程控制:对计算机代码执行的顺序进行有效a'a的管理,只有流程控制才能实现在开发当中的业务逻辑
流程控制的分类:
- 顺序流程:就是代码一种自上而下的执行结构,也是python默认的流程
- 选择流程/分支流程:根据在某一步的判断,有选择的去执行相应的逻辑的一种结构
- 循环流程:在一定的条件下,一直重复的去执行某段代码的逻辑【事情】
分支流程分为:
1. 单分支
if条件表达式:
一条条的python代码
一条条的python代码
一条条的python代码
……
2. 双分支
if条件表达式:
一条条的python代码
一条条的python代码
一条条的python代码
……
else:
一条条的python代码
一条条的python代码
一条条的python代码
……
3. 多分支
if条件表达式:
一条条的python代码
一条条的python代码
一条条的python代码
……
elif条件表达式:
一条条的python代码
一条条的python代码
一条条的python代码
elif条件表达式:
一条条的python代码
一条条的python代码
一条条的python代码
……
else:
一条条的python代码
一条条的python代码
一条条的python代码
……
注意:条件表达式:比较运算符/逻辑运算符/复合的运算符
循环流程:
while条件表达式:
一条条的python代码
一条条的python代码
一条条的python代码
……
for...in 可迭代集合对象:
一条条的python代码
一条条的python代码
一条条的python代码
……
例:
score=60 #满足条件就会输出打印的提示
if score<=60:
print(“成绩不是太理想,要继续加油哦”)
pass #表示空语句
print(“语句运行结束”)
例:
if score>60:
print(“你的成绩及格了……”)
pass
else
print(“成绩不合格,请继续努力”)
pass
多分支特征:
- 只要满足其中一个分支,就会退出本层if语句结构【必定会执行其中一个分支】
- 至少有2种情况可以选择
- elif后面必须写上条件和语句
- else是选配,根据实际的情况来写
例:
score=input(‘请输入你的成绩……’)
if score>95:
print(“您的成绩是A等级”)
pass
elif score>=80:
print(“您的成绩是B等级”)
pass
elif score>=70:
print(“您的成绩是C等级”)
pass
elif score>=60:
print(“您的成绩是D等级”)
pass
else:
print(“可以回家修理地球了”)
print(“程序运行结束了……”)
多分支练习(猜拳小游戏):
#0: 石头 1:剪刀 2:布
import random
person=int(input('请出拳:【0:石头 1:剪刀 2:布'】))
computer=random.randint(0,2)
if person==0 and computer==1: #多条件
print("厉害了,你赢了")
elif person==1 and computer==2:
print("厉害了,你赢了")
elif person==2 and computer==0:
print("厉害了,你赢了")
elif person==computer:
print("不错,居然平手")
else:
print("哈哈,你输了")
if-else嵌套:
if条件1:
if条件2:
print('满足条件1',同时满足条件2)
else:
print('满足条件1',但是不满足条件2)
elif条件3:
if条件4:
print('满足条件3',同时满足条件2)
实例:
xuefen=int(input(“请输入你的学分”))
if xuefen>10:
grade=int(input(“请输入你的成绩”))
if grade>=80:
print('你可以升班了,恭喜您')
pass
else:
print('很遗憾,您的成绩不达标')
pass
else:
print('您的表现也太差了吧')
while循环基本语法结构:
while条件表达式:
代码指令
语法特点:
- 有初始值
- 条件表达式
- 变量【循环体内计数变量】的自增或者自减,否则会造成死循环
使用条件:循环的次数不确定,是依靠循环条件来结束
目的:为了将相似或者相同的代码操作变得更加简洁,使得代码可以重复利用
案例(输出1-100之间的数据):
index=1 #定义一个变量
while index<=100:
print(index)
index+=1
pass
#猜拳游戏循环 0: 石头 1:剪刀 2:布
import random
count=1
while count<=10:
person=int(input('请出拳:[0:石头 1:剪刀 2:布]'))
computer=random.randint(0,2)
if person==0 and computer==1: #多条件
print("厉害了,你赢了")
elif person==1 and computer==2:
print("厉害了,你赢了")
elif person==2 and computer==0:
print("厉害了,你赢了")
elif person==computer:
print("不错,居然平手")
else:
print("哈哈,你输了")
count+=1
#打印九九乘法表
row=9 #row行 #换成row=1 可以倒过来显示
while row<=9: #换成row>=1 可以倒过来显示
col=1 #col列
while col<=row:
print(“%d*%d=%d”%(row,col,row*col),end=“ “)
col+=1
pass
print() #起到换行作用
row+=1 #换成row-=1 可以倒过来显示
pass
#打印一个直角三角形
row=1 #换成row=7 可以倒过来显示
while row<=7: #超过7行不打印了 #换成row>=1 可以倒过来显示
j=1 #控制每一行的数量
while j<=row:
print(‘*’,end=‘ ’)
j+=1
pass
print() #起到换行作用
row+=1 #换成row-=1 可以倒过来显示
pass
#打印一个等腰三角形
row=1
while row<=5: #超过5行不打印了
j=1 #控制每一行的数量
while j<=5-row:
print(‘ ’,end=‘ ’)
j+=1
pass
k=1
while k<=2*row-1: #控制打印*号
print(‘*’,end=‘ ’)
k+=1
pass
print() #起到换行作用
row+=1
pass
for循环基本语法结构:
语法特点:遍历操作,依次的取集合容器中的每个值
for循环格式:
for 临时变量 in 字串符,列表等:
执行代码
执行代码
for循环示例:
a='python'
for i in a:
print(i)
for循环遍历列表:
li=['a','b','c','d']
for i in li:
print(i)
例:
tags='我是一个中国人'
for item in tags:
print'item'
pass
range(区域)函数:可以生成一个数据集合列表
#range(起始:结束:步长) 步长不能为0
#print(type(range(1,100)))
sum=0
for data in range (1,101): #左边包含,右边不包含,要包含100就要往后一位到101
sum+=data #求累加和
#print(data,end=' ')
pass
#print("sum=%d"%sum)
print(‘------------------for的使用-------------------’)
for data in range(50,201):
if data%2=0: #把偶数拿出来
print("%d是偶数"%data)
pass
else:
print("%d是奇数"%data)
break、continue语句
break:退出循环(中断) #只要满足条件,直接结束本层循环
continue:跳过本次循环(继续下一个循环) #当continue的条件满足的时候,本次循环剩下的语句将不再执行,后面的循环继续
#这两个关键字只能用在循环中
例:
sum=0
for item in range(1,51):
if sum>100: #累加和>100不再执行
print('循环执行到%d就退出来了'%item)
break #退出循环
pass
sum+=item
pass
例:
sum=0
for item in range(1,100): #求出来奇数
if item%2=0:
continue
print('在continue的后面会不会执行呢')
pass
print(item)
pass
例:
for item in 'I love python':
if item=='e': #到e这个字母就中断循环
break
print(item)
例:
for item in 'I love python':
if item=='o': #跳过字母o继续循环
continue
print(item,end=' ') #不换行
例:
index=1
while index<=100:
if index>=20:
break
pass
print(index)
index+=1
while使用:适用于对未知的循环次数,用于判断
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的使用
#while else的使用
例:
for item in range(1,11):
print(item,end=' ')
if item >=5:
break
pass
else:
print('就是上面循环当中 只要是出现了break 那么else的代码将不再执行')
例:
account='wyw'
pwd='123'
for i in range(3):
zh=input('请输入帐号:')
pd=input('请输入密码:')
if account==zh and pwd==pd:
print('登录成功。。。')
break
pass
pass
else:
print('您的帐号已经被系统锁定。。。')
例:
index=1
while index<=10:
print(index)
if index==6:
break
index+=1
pass
else:
print('else执行了么。。。') #有了break就不会执行else代码
Daily Practice:
#猜年龄小游戏,3点需求:
1.允许用户最多尝试3次
2.每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y,就继续让其猜3次,以此往复,如果回答N或n,就退出程序
3.如果猜对了,就直接退出程序
#目的:演练while和if的使用,综合运用
times=0
count=3
while times<=3:
age=int(input('请输入您要猜得年龄。。。'))
if age==25:
print('恭喜您,猜对了')
break #直接中断
pass
elif age>25:
print('猜大了,请再试试')
pass
else:
print('猜小了,请再试试')
pass
times+=1
if times=3:
choose=input('想不想继续猜呢 Y/N?')
if choose=='Y' or choose=='y':
times=0 #次数重置为初始值
if choose=='N' or choose=='n':
times=4
pass
else:
print('请输入正确的标识')
#用if-elif判断并打印结果:
小王身高1.75,体重80.5kg,请根据BMI公式(体重除以身高的平方)帮小王计算他的BMI指数,并根据BMI指数:
低于18.5 过轻
18.5-25 正常
25-28 过重
28-32 肥胖
高于32 严重肥胖
hieght=1.75
weight=80.5
BMI=weight/(height**2)
print(“BMI的数据是%d”%BMI)
if BMI<18.5:
print('过轻')
pass
elif 18.5<=BMI<25:
print('正常')
pass
elif 25<=BMI<28:
print('过重')
pass
elif 28<=BMI<32:
print('肥胖')
pass
else:
print('严重肥胖')