流程控制、if、elif、else,whilie、break、continue的使用
今日内容
流程控制理论
if判断
while循环
流程控制概念
流程控制就是控制事物的执行流程
执行流程的分类
顺序结构
从上往下依次执行,代码运行流程图如下

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

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

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

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

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
程序运行结果为

程序的执行流程为:

必知:
在python中使用缩进来表示代码的从属关系
并不是所有的代码都可以有子代码,目前可以有的,if、elif、else、whilie。
如果多行代码属于同一个父代码,那么这多行代码需要保证相同的缩进量,在python中推荐使用四个空格来表示缩进
具有相同缩进量的代码彼此之间按照顺序结构执行,没有从属关系,平起平坐
如果一行代码是冒号结束,那么紧挨着的下一行必缩进
冒号的含义相当于是要拥有子代码
流程控制、if、elif、else,whilie、break、continue的使用的更多相关文章
- 049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句
049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句 本文知识点:break语句 break语句 break语句前情回顾 1.swi ...
- 控制 if 语句 while循环 break continue
if 语句的语法: 1. if 条件 : #引号是将条件与结果分开 代码块 # 四个空格,或者一个tab键,这个是告诉程序满足这个条件的 说明: 当条件成立的时候(True), 代码块会被执行 ...
- Shell 流程控制-if for case while until break continue
Shell 流程控制 和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { ...
- shell编程--流程控制for,do-while,if-then,break,continue,case等
2.5 流程控制 2.5.1 if语法 1.语法格式 if condition then statements [elif condition then statements. ..] ...
- if else; while; break;continue ----流程控制系列
第一种语法: if 条件: # @引号是为了把条件和结果分开. 结果1 # 一个Tab或者4个空格 @告诉程序满足上面的if条件才会执行结果1结果2 #如果条件为真(True),执行结果1,然后执行结 ...
- Python基础(三)--流程控制之if、while、for,break与continue
一.流程控制之if……else…… if语句是指编程语言中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一 if 条件1: 缩进的代码块 elif 条件2: 缩进的代码 ...
- 基础补充(四)——流程控制之if、while、for,break与continue
流程控制 一.流程控制之if……else…… if 条件1: 缩进的代码块 elif 条件2: 缩进的代码块 elif 条件3: 缩进的代码块 ...... else: 缩进的代码块 二.流程控制之 ...
- python基础--程序交互、格式化输出、流程控制、break、continue
在此申明一下,博客参照了https://www.cnblogs.com/jin-xin/,自己做了部分的改动 (1) 程序交互 #!/usr/bin/env python # -*- coding: ...
- Java 关键字、标识符、注释、常量与变量、数据类型,算术、赋值、比较、逻辑、位、三元运算符和流程控制、break、continue【3】
若有不正之处,请多多谅解并欢迎批评指正,不甚感激.请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing/ ...
随机推荐
- 图论+回溯解QQ一笔画红包
[春节整活] QQ的一笔画红包有几个特性: 1.最大为5×5的点阵,所以可以把每个点从左到右,从上到下标为1-25号点 2.每两个点只能存在一条线 3.线可以被盖住(例如连接2-1-3,2-1的线会被 ...
- SIFT,SuperPoint在图像特征提取上的对比实验
SIFT,SuperPoint都具有提取图片特征点,并且输出特征描述子的特性,本篇文章从特征点的提取数量,特征点的正确匹配数量来探索一下二者的优劣. 视角变化较大的情况下 原图1 原图2 SuperP ...
- 用socket写一个简单的服务器
import socketsk=socket.socket()sk.bind(("127.0.0.1",7001))sk.listen()def login(url): with ...
- ql/sql 循环语句、异常处理、事务处理!
一.ql sql 循环语句? /*1.loop循环 语法: 声明循环变量 loop 判断循环条件 ,如果循环条件不成立,跳出循if 条件表达式 then exit; end if; 语句块; 改变循环 ...
- Git上传项目到码云提示Push rejected: Push to origin/master was rejected
感谢大佬:https://blog.csdn.net/weixin_41499217/article/details/82985582 Push rejected: Push to origin/ma ...
- webpack热更新 同时导出文件到本地
webpack 配置热更新后,文件配置导出到本地 安装 npm i webpack-dev-server-output --save-dev 引入 const WebpackDevServerOutp ...
- push自定义动画
// // ViewController.m // ViewControllerAnimation // // Created by mac on 15/5/26. // Copyright ...
- 搭建golang开发环境(1.14之后版本)
Go语言1.14版本之后推荐使用go modules管理依赖,也不再需要把代码写在GOPATH目录下. 下载地址 Go官网下载地址:https://golang.org/dl/ Go官方镜像站(推荐) ...
- SYSTEM表空间满,解决方法
SYSTEM表空间是Oracle创建数据库时候自动创建的,每个Oracle数据库都会有SYSTEM表空间,而且SYSTEM表空间总是要保持在联机模式下,因为其包含了数据库运行所要求的基本信息,如:数据 ...
- CoaXPress 接口相机的控制方法--1
GenICam 介绍 简而言之,GenICam 定义了一个通用的相机接口,使得应用程序的编写.相机的控制可以与具体的型号解耦,这样就可以设计出通用的软件完成对不同相机的控制.我们实际使用的CoaXPr ...