今日内容

  • 流程控制理论

  • if判断

  • while循环


流程控制概念

流程控制就是控制事物的执行流程

执行流程的分类

顺序结构

从上往下依次执行,代码运行流程图如下

分支结构

根据某些条件判断做出不同的运行流程

循环结构

根据某些判断循环往复的做相同的事情(不会一直循环,都应该有一个结束循环的条件),类似于一个人每天做一件事情,比如流水线上的操作工,在代码层面上其实就是让一些代码反反复复的执行

流程图如下

分支结构分类

  1. 单if分支
    '''
    语法结构
    if 条件:
    条件成立之后的子代码(可以有多行)
    '''
    # eg
    # 如果女孩子大于38 叫阿姨
    # 先定义一个女孩子的年龄
    age = 39
    # 判断年龄是否大于 38
    if age >38:
    print ('阿姨好')

    那么这段代码的流程图就是

  2. if与else分支
    '''
    语法结构
    if 条件:
    条件成立之后执行的子代码(可以有多行)
    else:
    条件不成立执行的子代码(可以有多行)
    '''
    # eg
    # 如果女孩子的年龄大于38 叫阿姨 否则叫小姐姐
    age = 18
    if age > 38"
    print('阿姨好')
    else:
    print('小姐姐')

    那么这段代码的流程图就是:

  3. if与elif与else分支
'''
语法结构
if 条件1:
条件1成立执行的子代码(可以有多行)
elif 条件2:
条件1不成立条件2成立执行的子代码(可以有多行)
elif 条件3:
条件1和2不成立,条件3成立执行的子代码(可以有多行)
else:
上述所有的条件都不成立执行的在子代码(可以有多行)
***中间的elif可以又多个***
'''
# eg
# 如果用户名是tuzi则打印老板,如果是tom则打印猫,如果是jeery则打印老鼠,如果是其他则打印不认识你
username = input('username>>>:')
if username == 'jason'
print('老板')
elif username == 'tom'
print('tom')
elif username == 'jerry'
print('老鼠')
else:
print('不认识你')

那么这段代码的流程图就是:

if的嵌套
# 一个if判断条件内,还可以再加入if条件判断
# 如果女孩子的年龄大于38说 不好意思认错人了 否则上去要微信
# 如果成功了 则去吃饭 看电影 逛商场 直至天黑 宿舍锁门了!
age = 22
is_success = True
if age < 38:
print('我观察你很久了想要个联系方式')
if is_success:
print('吃饭 看电影 天黑了 睡觉觉')
else:
print('去你妹的')
else:
print('哎呀不好意思 认错人了')

那么这段代码的执行流程图就是:


循环结构

whille循环

while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。

'''
其语法结构为:
while 判断条件:
条件成立之后执行的循环体代码
'''
# 执行语句可以是单个语句或语句块,判断条件可以是任何表达式,任何非0非空的值均为Ture,当判断条件为false时,循环结束
# eg:
while True:
#获取用户的用户名和密码
username = input('username>>>:')
password = input('password>>>:')
# 校验/判断用户名和密码是否正确
if username == 'tuzi' and password == '123':
print('登录成功')
else:
print('用户名或密码错误')

运行结果为:

而如果用户名和密码一直输入错误,则会一直让用户重新输入,知道输入正确为止,而在这之前,今天真有意思这句话也输出不了,因为该程序还没有跳出while循环。如下图所示

那么该程序运行的流程图为:

那么现在就发现了一个问题,就是不管有没有输正确,他都会循环运行代码,也就是陷入了死循环,接下来就讲讲怎么解决

#while+break
break是用于直接结束本层循环
break只能结束所在那一层的循环
# eg:
# 获取用户的用户名和密码
username = input('username>>>:')
password = input('password>>>:')
# 2.校验/判断用户名和密码是否正确
if username == 'tuzi' and password == '123':
print('登录成功')
break # 结束本层循环
else:
print('用户名或密码错误')
print('今天真有意思!!!')

运行结果图为:

如果输入错误的话,还是让你重新输入

那么该程序的运行流程为

除了break是跳出循环外,continue也是用来跳出循环的

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

# eg
count = 1
while count < 11:
if count == 4:
count += 1
continue # 结束本次循环,开始下一次循环
print(count)
count += 1

程序运行结果为

程序的执行流程为:

必知:

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

  2. 并不是所有的代码都可以有子代码,目前可以有的,if、elif、else、whilie。

  3. 如果多行代码属于同一个父代码,那么这多行代码需要保证相同的缩进量,在python中推荐使用四个空格来表示缩进

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

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

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

最新文章

  1. 【Java EE 学习 81】【CXF框架】【CXF整合Spring】
  2. 不用插件 让Firefox 支持网页翻译
  3. uml类关系
  4. Linux命令 + Shell
  5. unity 脚本(自定义组件)的事件触发关系
  6. JAVA_HttpClientUtils
  7. BZOJ 2754([SCOI2012]喵喵叫的星球-统计序列的后缀阵列中子序列出现次数)
  8. OGR – Merging Multiple SHP files
  9. sdram控制2
  10. Android广播机制
  11. DateTables的服务器分页
  12. Android Json 解析
  13. Flask学习-前言
  14. 【Android】3.25 示例25--调启百度地图
  15. JavaScript - this详解 (三)
  16. 深入理解java虚拟机-第六章
  17. 【转】RMAN删除过期备份或非过期备份
  18. javascript判断是否为数组 面试题
  19. 【GLSL教程】(二)在OpenGL中使用GLSL 【转】
  20. Zabbix4.0 Web管理界面中文乱码解决方法(转)

热门文章

  1. python 模块Module
  2. What Goes Up Must Come Down
  3. JVM学习十二 - (复习)JVM内存结构
  4. web安全知识拓扑
  5. 谷粒商城Day1
  6. Spark算子 - aggregate
  7. 如何通过opensea-js获取OpenSea的数据
  8. .NET 云原生架构师训练营(权限系统 代码实现 ActionAccess)--学习笔记
  9. CentOS 7 下升级OpenSSH 7.4p1到OpenSSH 8.4p1
  10. 图解python | for循环