2 Python流程控制

一 流程

流程:就是计算机执行代码的顺序

流程控制:对计算机代码执行的顺序进行有效的管理,只有流程控制才能实现在开发当中的业务逻辑

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)来决定执行的代码块。

特征:

  1. 只要满足其中一个分支,就会退出本层if语句结构【必定会执行其中一个分支】
  2. 至少有2中情况可以选择
  3. elif后面必须写上条件和语句
  4. 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

结果:

2 Python流程控制_第1张图片

那么我们就可以在之前的猜拳小游戏加上条件,循环几次之后就结束。

#猜拳小游戏,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

结果:

2 Python流程控制_第2张图片

使用嵌套循环写一个乘法口诀表

#使用循环的嵌套来打印九九乘法表
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

结果:

2 Python流程控制_第3张图片

使用嵌套循环打印一个等腰三角形

#使用嵌套循环打印一个等腰三角形
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

结果:

2 Python流程控制_第4张图片

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('账户已被锁定')

结果:

2 Python流程控制_第5张图片

如果成功的话就不会执行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结束整个循环不在继续

你可能感兴趣的:(Python)