ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

6. 流程控制

2022-03-07 21:04:39  阅读:123  来源: 互联网

标签:球王 控制 流程 else 循环 print 执行 代码


一、 流程控制理论

1.什么是流程控制

流程控制指的是控制程序(事务)的执行流程

2.程序的执行流程分类

顺序结构:

       从上往下依次执行     

分支结构:

       根据条件判断的结果作出不同的执行流程

Typora中flow语法实现分支结构流程图:
st=>start: x = 10 cond=>condition: x > 15? sub1=>subroutine: 打印x的值不大于15 io=>inputoutput: 打印x的值大于15 e=>end: 结束 st->cond cond(yes)->io->e cond(no)->sub1(right)->e

 循环结构:

       根据条件判断的结果反复的做相同的事情(重复执行某些代码块)

Typora中flow语法实现循环结构流程图:
st=>start: a = 1

op=>operation: a = a + 1

cond=>condition: a > 10 ?

sub1=>subroutine: 打印a的值

io=>inputoutput: 打印a大于10

e=>end: 结束

st->op->cond                               

cond(yes)->io->e                        

cond(no)->sub1(right)->op  

 二、必知必会的知识点

1. 在python中使用缩进来代表代码的从属关系

if 18 > 19:
    print('阿根廷足球巨星梅西')  # 此行代码属于if判断,是否执行由if判断的结果决定

2. 并不是所有的代码都可以有子代码(从属的代码)

      目前可以有的:

                            if

                            else

                            while

3.如果多行代码属于同一个父代码,那么这多行代码需要保证相同的缩进

          在python中推荐使用4个空格来表示缩进

4.具有相同缩进量的代码彼此之间按照顺序结构执行,没有从属关系

5.如果一行代码的结尾是冒号结束,那么紧挨着的下一行必然缩进

       冒号的含义相当于要拥有子代码

       例如:if、else、while

 三、分支结构

1.  单if分支

"""
语法

if 条件:
    条件成立之后执行的子代码
    子代码可以有多行
"""
# 需求:如果进球数大于91 比梅球王进球还多
goals = 95  # 定义进球的数量
if goals > 91:  # 判断进球是是否大于91
    print('比梅球王进球还多')

2.  if、else分支

"""
语法

if 条件:
    条件成立之后执行的子代码
    子代码可以有多行
else:
    条件不成立执行的子代码
    子代码可以有多行
"""
# 需求:如果进球数大于91,比梅球王进球数还多  否则,继续训练
goals = 59
if goals > 91:
    print('比梅球王进球数还多')
else:
    print('继续训练')

3.  if、elif、else分支

语法

if 条件1:
条件1成立时执行的子代码
子代码可以有多行
elif 条件2:
条件1不成立;;;条件2成立执行的子代码
子代码可以有多行
elif 条件3:
条件1和条件2都不成立;;;条件3成立执行的子代码
子代码可以有多行
else:
上述条件都不成立;;;执行的子代码
子代码可以有多行
"""
需求:如果球员名字是梅西则打印阿根廷球王,如果是C罗则打印葡萄牙球王,如果是林加德则打印大英帝国球王,如果是其他名字则打印其他球王
"""
name = input('请输入球员名字:')
if name == '梅西':
    print('阿根廷球王')
elif name == 'C罗':
    print('葡萄牙球王')
elif name == '林加德':
    print('大英帝国球王')
else:
    print('其他球王')

4. if的嵌套

age = int(input('请输入年龄:'))
if age <= 25:
    print('读博士之前的年龄')
    if age > 22:
        print('正是读硕士的年龄')
    else:
        print('读小学、中学、大学的年龄')
else:
    print('正是读博士的年龄')

四、 循环结构

1.while循环语法

while 条件:
条件成立之后执行的循环体代码

1.判断条件是否成立,如果成立则执行循环体代码
2.循环体代码执行完毕后,再次判断条件是否成立;
如果成立则继续执行循环体代码;
如果不成立则跳出循环
# 编写一个无限输入用户名和密码的登录程序
while True:  # 条件恒成立,无限循环
    name = input('请输入用户名:')  # 获取输入的用户名
    passwd = input('请输入密码:')  # 获取输入的密码
    if name == '梅西' and passwd == '30':  # 判断用户名或密码是否正确
        print('登录成功')
    else:
        print('用户名或密码错误')

2. while + break的应用

    break是用于直接结束本层循环

    break只能结束所在的那一层循环

# 当用户名和密码输入正确时,显示登录成功,并且结束循环,按顺序执行同级代码;
# 输入错误时,显示用户名或密码错误,无限获取输入,直到正确

while True:  # 条件恒成立,无限循环
    name = input('请输入用户名:')  # 获取输入的用户名
    passwd = input('请输入密码:')  # 获取输入的密码
    if name == '梅西' and passwd == '30':  # 判断用户名或密码是否正确
        print('登录成功')
        break  # 结束本层循环
    else:
        print('用户名或密码错误')
print('阿根廷球王梅西')  # 此行代码的运行意味着循环已结束

3.  while+continue的应用

    用于结束本次循环,直接开始下一次循环(continue的使用频率比break要低)

# 打印1~10的数字(除了4不打印)
num = 1  # 令初始值等于1,按顺序执行同级别代码,开始循环
while num < 11:  # 当num的值小于11的时候,执行循环体代码
    if num == 4:
        num += 1
        continue  # 当num的值为4时,结束本次循环,直接跳到条件判断的地方重新执行;;如果没有上一行的赋值代码,程序将陷入死循环
    print(num)
    num += 1

 五、 debug的用法

debug可以将瞬间执行完成的代码一步一步执行

六 、作业

 1.编写一个猜年龄的游戏:

基本要求
如果不对的情况下可以猜三次 如果对了直接结束
拔高练习
三次机会用完之后提示用户是否继续猜测 如果用户输入了y
则再给用户三次机会 如果用户输入n则直接结束

count = 0
while count < 3:
    age = int(input('请输入您猜想的数字:'))
    if age == 18:  # 猜年龄是否为18
        print('猜对了')
        break  # 猜对直接结束本层循环
    else:
        print('猜错了')
        count += 1  # 猜测的次数加1
        if count == 3:  # 当猜错3次时
            result = input('已猜错3次,继续猜3次请按y,结束请按n:')  # 获取用户输入
            if result == 'y':  # 用户想继续猜3次
                count = 0  # 将count的计数归零,继续执行循环
            elif result == 'n':  # 用户不想继续猜3次
                break  # 错误次数已经达到,直接结束本层循环

 

标签:球王,控制,流程,else,循环,print,执行,代码
来源: https://www.cnblogs.com/hbutmeng/p/15976030.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有