一 流程
流程:就是计算机执行代码的顺序
流程控制:对计算机代码执行的顺序进行有效的管理,只有流程控制才能实现在开发当中的业务逻辑
1.1 流程控制的分类
1.1.1 顺序流程
就是代码一种自上而下的执行结构,也是Python默认的流程
1.1.2 选择流程/分支流程
- 单分支
if 条件表达式:
Python代码
Python代码
..............
- 双分支
if 条件表达式:
Python代码
Python代码
..............
else:
Python代码
Python代码
..............
- 多分支
if 条件表达式:
Python代码
..............
elif:
Python代码
..............
elif 条件表达式:
Python代码
..............
else:
Python代码
Python代码
..............
条件表达式:比较运算符/逻辑运算符/复合的运算符
1.1.3 循环流程
在满足一定的条件下,一直重复的去执行某段代码的逻辑【事情】
while 条件表达式:
Python代码
Python代码
..............
while循环一定要有三要素:
- 必须有初始变量
- 必须有条件表达式
- 在代码块中必须出现量值来控制,不然会出现死循环
for ... in 可迭代集合对象:
Python代码
Python代码
..............
二 选择流程实战
2.1 多分支流程
Python条件语句是通过一条或多条语句的执行结果(true或false)来决定执行的代码块。
特征:
- 只要满足其中一个分支,就会退出本层if语句结构【必定会执行其中一个分支】
- 至少有2中情况可以选择
- elif后面必须写上条件和语句
- else是选配,根据实际情况来填写
例子:
#if条件判断
score=int(input("请输入分数"))
if score>=60:
print("成绩合格")
elif score<=20:
print("成绩太差")
else:
print("一般般")
pass #空语句
结果:
案例:用多条件写一个猜拳游戏
import random #带入随机数模块
#猜拳小游戏,0代表石头,1代表剪刀,2代表布
person=int(input(("请输入0,1,2:")))
computer=random.randint(0,2)
if person==0 and computer==1:
print("你获胜")
pass
elif person==1 and computer==2:
print("你获胜")
pass
elif person==2 and computer==0:
print("你获胜")
pass
else:
print("你输了")
结果:
当输入1的时候,计算机则随机产生的数为0
当输入0的时候,计算机则随机产生的数字为2
当输入2的时候,计算机则随机产生的数字为
2.2 if-else嵌套
#if-else的嵌套使用
credit=int(input("请输入学分:"))
if credit>=10:
grade = int(input("请输入成绩:"))
if grade>=80:
print("恭喜你,通过了!")
pass
else:
print("您的成绩不够")
pass
else:
print("您的学分都不够")
当条件都满足时:
当学分不满足时,则会直接跳出
当学分够了,成绩不够之后
三 循环流程实战
3.1 while语法
while 条件表达式:
代码指令
语法特点:
(1)有初始值
(2)条件表达式
(3)变量【循环体内计数变量】的自增自减,否则会造成死循环
使用条件:循环的次数不确定,是依靠循环条件来决定
目的:为了将相似或者相同的代码操作变得更加简洁,使得代码可以重复利用。
例子:
#使用while输出1-10的数据
index=1 #定义一个变量并赋值
while index<=10:
print(index)
index+=1
pass
结果:
那么我们就可以在之前的猜拳小游戏加上条件,循环几次之后就结束。
#猜拳小游戏,0代表石头,1代表剪刀,2代表布,总共可以玩3局
import random #带入随机数模块
count=1
while count<=3:
person=int(input(("请输入0,1,2:")))
computer=random.randint(0,2)
if person==0 and computer==1:
print("你获胜")
pass
elif person==1 and computer==2:
print("你获胜")
pass
elif person==2 and computer==0:
print("你获胜")
pass
else:
print("你输了")
pass
count+=1
结果:
使用嵌套循环写一个乘法口诀表
#使用循环的嵌套来打印九九乘法表
row=1
while row<=10:
col=1
while col<=row:
print("%d*%d=%d"%(row,col,row*col),end=" ") #end=" "代表不换行,默认的print()是换行的
col+=1
pass
print()
row+=1
pass
结果:
使用嵌套循环打印一个等腰三角形
#使用嵌套循环打印一个等腰三角形
row=1
while row<=5:
i=1
while i<=5-row: #控制打印空格的数量
print(" ",end='')
i+=1
pass
j=1
while j<=2*row-1: #控制打印*的数量
print('*',end='')
j+=1
pass
print()
row+=1
结果:
3.2 for循环
语法特点:遍历操作,依次的取集合容器中的每个值
for 临时变量 in 容器:
执行代码块
例子:
使用for循环打印出1-50
for i in range(1,51): #range函数,左包含右不包含
print(i,end=',')
结果:
使用for循环来输出1-100之和
sum=0
for i in range(1,101): #range函数,左包含右不包含
sum+=i
pass
print('sum=%d'%sum)
结果:
3.3 break与continue关键字
break代表中断结束,满足条件直接的结束本层循环
continue代表结束本次循环,继续的进行下次循环(当continue的条件满足的时候,本次循环剩下的语句将不在执行,后面的循环继续)
注意:这俩个关键字只能用在循环中
break例子:
将上个例子进行修改,当总和大于100的时候就退出
sum=0
for i in range(1,101):
if sum>=100:
print('循环到%d跳出来'%i)
break
sum+=i #退出循环体
pass
print(sum)
结果:
continue例子:
打印出1-50之间的奇数
#打印出1-50之间的奇数
for i in range(1,51):
if i%2==0:
continue #如果可以被2整除的话,就不在执行后面的代码块
pass
print(i,end=' ')
结果:
再来一个例子加深一下他俩的本质区别
str='zhangsan love canglaoshi'
for i in str:
if i=='o':
break #当碰到o的时候直接结束循环
pass
print(i,end='')
结果:
for i in 'zhangsan love canglaoshi':
if i=='o':
continue #当碰到o的时候直接跳过本次循环,继续下次
pass
print(i,end='')
使用for循环来实现乘法表
#使用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
结果:
3.4 for....else语法:
例子:模拟登录信息,如果用户名与密码输入3次还没有成功的话就提示用户“账户被锁定”
#for...else的用法
user='canglaoshi'
password='123'
for i in range(3):
us=input('请输入用户名:')
pas=input('请输入密码:')
if us==user and pas==password:
print('登录成功!!!')
break
pass
pass
else:
print('账户已被锁定')
结果:
如果成功的话就不会执行else
3.5 while....else的用法
#while....else的用法
i=1
while i<=10:
print(i)
if i==5:
break
i += 1
pass
else:
print('else执行了么')
结果:
注意:只要出现break,以后的代码就不会被执行。
四 小结
1. if-else语句
- if else 语句
- elif语句
- if else 嵌套
2.for循环
- for循环格式
- for循环遍历字符串、列表(可迭代对象)....
3. while循环
- while循环语法
- while循环条件判断方法
- 结合逻辑运算符循环嵌套
4. break、continue语句
- continue结束当前循环并进入下一个循环
- break结束整个循环不在继续