流程控制

流程控制

流程控制理论

流程控制是什么

控制事物的执行过程和顺序。

图片名称

执行流程的分类

  1. 顺序结构
    从上往下依次执行
  2. 分支结构
    根据条件的判断做出不同的执行流程
  3. 循环结构
    根据条件的判断循环往复做相同的事情

分支结构

1.单if分支

语法结构:
if条件:
条件成立之后执行子代码,子代码可以有多行

# :考试60分及格,如果及格就打印‘恭喜你及格了’
exam_score = int(input('please enter your exam score>>>:'))  # :输入学生成绩,并把输入的数据转化为整型
if 100 >= exam_score >= 60:  # :进行条件判断
    print('恭喜你及格了')  # :打印条件成立时的结果
图片名称

2.if与else分支

语法结构:
if条件:
条件成立之后执行子代码,子代码可以有多行
else:
条件不成立执行的子代码,子代码可以有多行

# :考试60分及格,如果及格就打印‘恭喜你及格了’;否则,打印‘恭喜你,准备补考或者重修吧’
exam_score = int(input('please enter your exam score>>>:'))  # :输入学生成绩,并把输入的数据转化为整型
if 100 >= exam_score >= 60:  # :进行条件判断
    print('恭喜你及格了')  # :打印条件成立时的结果
else:
    print('恭喜你,准备补考或者重修吧') # :条件不成立时的结果
图片名称

3.if与elif与else分支

语法结构:
if条件1:
条件1成立执行的子代码
elif条件2:
条件1不成立,条件2成立执行的子代码
elif条件3:
条件2不成立,条件3成立执行的子代码
else:
上面的条件都不满足执行的子代码

# 工资评判系统,每月薪资达到2000为优秀,18000为良好,16000为一般,15000为及格,否则不及格
monthly_salary = int(input('please fill in your monthly salary>>>:'))  #:获取工资数据
if monthly_salary >= 20000:  #:进行if条件判断
    print('优秀')  #: 打印if条件成立的结果
elif monthly_salary >= 18000:  #:进行elif1条件判断
    print('良好')  #: 打印elif1条件成立的结果
elif monthly_salary >= 16000:  #:进行elif2条件判断
    print('一般')  #: 打印elif2条件成立的结果
elif monthly_salary >= 15000:  #:进行elif3条件判断
    print('及格')  #:打印elif3条件成立的结果
else:
    print('不及格')  #:打印上述条件都不成立的结果
图片名称

4.if的嵌套

# 学生补考系统
exam_score = int(input('please enter your exam score>>>:'))  # :输入学生成绩,并把输入的数据转化为整型
is_resit = True  # :设定是否补考的布尔值为True
if 100 >= exam_score >= 60:  # :进行条件判断
    print('恭喜你及格了')  # :打印条件成立时的结果
else:
    print('恭喜你,准备补考或者重修吧')  # :打印条件不成立时的结果
    if not is_resit:  #: 进行if条件判断
        print('加油吧,补考机会只有一次哦')  # :打印嵌套条件成立时的结果

    else:
        print('中奖了,准备交钱重修吧')  #:打印上述条件都不成立时的结果
图片名称

循环结构

1.while循环

while 条件:
while条件成立之后执行的循环体代码
先判断条件是否成立,如果成立则开始执行循环体代码
循环体代码执行完毕后,再一次判断条件是否成立;如果成立则继续执行循环体代码,如果不成立则终止循环回到顺序执行

while True:
    username = input('please enter your username>>>:')  # :获取用户的用户名
    password = input('please enter your password>>>:')  # :获取用户的密码
    verification_code = input('please fill in the verification_code>>>:')  # :获取用户输入的验证码
    if username == 'jd001' and password == '8888' and verification_code == 'q7w8'  :  # :判断用户名、密码和验证码是否正确
        print('欢迎jd001会员光临')  # :打印if条件成立的结果
    else:
        print('抱歉!用户名或密码或验证码错误')  # :打印if条件不成立的结果
图片名称

2.while+break

break的用法是结束本层的while循环

while True:  # :
    username = input('please enter your username>>>:')  # :获取用户的用户名
    password = input('please enter your password>>>:')  # :获取用户的密码
    verification_code = input('please fill in the verification_code>>>:')  # :获取用户输入的验证码
    if username == 'jd001' and password == '8888' and verification_code == 'q7w8'  :  # :判断用户名、密码和验证码是否正确
        print('欢迎jd001会员光临')  # :打印if条件成立的结果
        break  # :结束while循环
    else:
        print('抱歉!用户名或密码或验证码错误')  # :打印if条件不成立的结果
图片名称

3.while+continue

continu是用于结束本次while循环,直接开始下一次循环

# 取1-50中偶数的和
sum1_50 = 0  # :设定变量名初始值为零
count = 0  # :设定变量名初始值为零
while count < 50:  # :进行while循环判断
    count += 1  # :count增量赋值
    if count % 2 == 1:  # :如果除以2的余数为1
        continue  #:终止本层循环
    sum1_50 += count  # :把不符合if条件的数即偶数相加
print(sum1_50)  #:打印计算结果
图片名称

4.while与else连用

当whil在没有被break命令强制结束的情况下,循环体代码正常结束之后会执行else:的子代码
语法结构:
while 条件:
while条件满足或者成立,执行循环体代码
else:
循环体代码正常运行结束,马上执行else:下面的子代码块

count = 0  # 取一个变量名count,赋值为0
while count < 20:  # 进行while循环条件判断
    count += 1  # 增量赋值
    if count == 13:  # 进行if条件判断
        continue  # 结束本次循环
    print(count)  # 打印变量count的值
else:  # 循环体代码之后正常结束后会执行else:的子代码
    print('while循环正常结束')  # 打印'while循环正常结束'

图片名称

5.死循环与while的嵌套

  • 死循环
# 死循环就是永远无法结束的循环并且一致占用CPU工作,有些时候会影响电脑的性能触发电脑的保护机制甚至损坏硬件
count = 
while True:
    count += 2
    print(count)
  • while的嵌套
name_list = ['administrator', 'admin001', 'jason']  # 设定管理员登陆账户列表
pwd_list = ['8888', '0000', '6666']  # 设定管理员登陆密码列表
flag = True  # 设定变量flag的初始布尔值为True
while flag:  # 进行while条件判断
    admin_name = input('please enter administrator name>>>:')  # 输入账户名界面
    admin_pwd = input('please enter administrator password>>>:')  # 输入密码界面
    if admin_name == name_list[0] and admin_pwd == pwd_list[0] or admin_name == name_list[1] and admin_pwd == pwd_list[1] or admin_name == name_list[2] and admin_pwd == pwd_list[2]:   # if判断
        print('登录成功')
        while flag:  # 进行while条件判断
            cmd = input('请输入您的命令>>>:')  # 命令输入界面
            if cmd == 'exit':  # if判断
                print('退出管理员系统')
                flag = False  # 变量flag的布尔值赋值为Flase
            print('正在执行您的指令:%s' % cmd)
    else:  # 第一个if条件不成立时执行else的子代码
        print("用户名或密码错误")
图片名称

6.for循环

for循环可以做到的事情while循环都可以做到,但是for循环语法更加简单,使用频率更高。特别是涉及到循环取值的时候,都会考虑使用for循环而不是while循环
语法结构:
for 变量名 in for循环对象: # for循环对象可以有字符串、列表、字典、元组、集合;每次执行都会将循环对象中的一个元素赋值给变量名
for循环的循环体代码

# 1.使用for循环依次打印出列表中所有的元素
weight_list = ['50kg', '60kg', '70kg', '55kg', '60kg']  # 创建体重列表
for weight in weight_list:  # for循环取值
    print(weight)
# 2.循环字符串:依次取出每一个字符
for i in 'welcome to China':  # for循环取值
    print(i)
# 3.循环字典
userinfo_dict = {'username': "jd001", 'pwd': '8888', 'verification_code': 'a4s5'}  # 创建字典
for i in userinfo_dict:  # for循环取值
    print(i)  # 循环字典只能获取到字典的key value无法直接获取
# 循环元组
for i in (909, 808, 707, 606, 505, 404):  # for循环取值
    print(i)  # 按照顺序
# 循环集合
for i in {909, 808, 707, 606, 505, 404}:  # for循环取值
    print(i)  # 不按照顺序,字典与集合内部的元素都是无序的

7.range关键字

# 循环打印0-100
for i in range(101):  # 从0开始到100结束的数据集,顾头不顾尾,默认为零
    print(i)
# 用法1  括号内只写一个数字,默认从0开始,顾头不顾尾
for i in range(101):
    print(i)
# 用法2  括号内写两个数字,第一个数字自定义起始位置,顾头不顾尾
for i in range(50, 101):
    print(i)
# 用法3  括号内写三个数字,第三个数字用来表示等差数列的差值,没有的话默认情是1
for i in range(1, 101, 5):
    print(i)

8.for循环补充

  1. for+break
    break结束本层for循环
for i in range(101):  # 从0开始到100结束的数据集,顾头不顾尾
    if i == 51:  # 进行if条件判断
        break  # 终止for循环
    print(i)  # 打印for循环的取值
  1. for+continue
    continue结束本次for循环,直接开始下一次
for i in range(101):  # 从0开始到100结束的数据集,顾头不顾尾
    if i == 50:  # 进行if条件判断
        continue  # 终止本次for循环,进入下一次循环
    print(i)  # 打印for循环的取值
  1. for+else
    for循环正常结束之后运行else子代码
for i in range(101):  # 从0开始到100结束的数据集,顾头不顾尾
    if i == 50:  # 进行if条件判断
        continue  # 终止本次for循环,进入下一次循环
    print(i)  # 打印for循环的取值
else:  # for循环正常结束打印else的子代码
    print('for循环执行完毕')
  1. for循环的嵌套
for i in range(3):  # for循环取值,每取一次值就开始执行for循环的子代码
    for j in range(5):  # 嵌套for循环取值,每取一次值就开始执行嵌套for循环的子代码
        print('^', end='')  # for循环每循环一次,打印一个’^’,end把打印结果并在一行
    print()  # 起着分行作用,属于外层for循环的子代码,外层for循环执行一次,就分一次行
图片名称
posted @ 2022-03-07 16:46  一梦便是数千载  阅读(104)  评论(0编辑  收藏  举报