今日内容

  • 流程控制理论

  • 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. 如果一行代码是冒号结束,那么紧挨着的下一行必缩进

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

流程控制、if、elif、else,whilie、break、continue的使用的更多相关文章

  1. 049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句

    049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句 本文知识点:break语句 break语句 break语句前情回顾 1.swi ...

  2. 控制 if 语句 while循环 break continue

    if 语句的语法: 1. if 条件 :   #引号是将条件与结果分开 代码块   # 四个空格,或者一个tab键,这个是告诉程序满足这个条件的 说明: 当条件成立的时候(True), 代码块会被执行 ...

  3. Shell 流程控制-if for case while until break continue

    Shell 流程控制 和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { ...

  4. shell编程--流程控制for,do-while,if-then,break,continue,case等

    2.5 流程控制 2.5.1 if语法 1.语法格式 if condition then     statements [elif condition     then statements. ..] ...

  5. if else; while; break;continue ----流程控制系列

    第一种语法: if 条件: # @引号是为了把条件和结果分开. 结果1 # 一个Tab或者4个空格 @告诉程序满足上面的if条件才会执行结果1结果2 #如果条件为真(True),执行结果1,然后执行结 ...

  6. Python基础(三)--流程控制之if、while、for,break与continue

    一.流程控制之if……else…… if语句是指编程语言中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一 if 条件1: 缩进的代码块 elif 条件2: 缩进的代码 ...

  7. 基础补充(四)——流程控制之if、while、for,break与continue

     流程控制 一.流程控制之if……else…… if 条件1: 缩进的代码块 elif 条件2: 缩进的代码块 elif 条件3: 缩进的代码块 ...... else: 缩进的代码块 二.流程控制之 ...

  8. python基础--程序交互、格式化输出、流程控制、break、continue

    在此申明一下,博客参照了https://www.cnblogs.com/jin-xin/,自己做了部分的改动 (1) 程序交互 #!/usr/bin/env python # -*- coding: ...

  9. Java 关键字、标识符、注释、常量与变量、数据类型,算术、赋值、比较、逻辑、位、三元运算符和流程控制、break、continue【3】

    若有不正之处,请多多谅解并欢迎批评指正,不甚感激.请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing/ ...

随机推荐

  1. Vue之 css3 样式重置 代码

    reset.css @charset "utf-8";html{background-color:#fff;color:#000;font-size:12px} body,ul,o ...

  2. ql/sql 循环语句、异常处理、事务处理!

    一.ql sql 循环语句? /*1.loop循环 语法: 声明循环变量 loop 判断循环条件 ,如果循环条件不成立,跳出循if 条件表达式 then exit; end if; 语句块; 改变循环 ...

  3. c#序列化和反序列化《转载》

    (一)使用总体说明 .net framework的类库中提供了三个可以用于序列化和反序列化的类,分别为BinaryFormatter.SoapFormatter和XmlSerializer. Bina ...

  4. .net core部署到ubuntu 上传文件超过30MB

    默认的上传文件不能超过30MB,需要修改几个地方 一.web.config中添加配置 <requestLimits maxAllowedContentLength="214748364 ...

  5. HTML 5的革新——语义化标签

    感谢原文作者:html5jscss 原文链接:http://www.html5jscss.com/html5-semantics-section.html 大佬的下一篇博文:http://www.ht ...

  6. Java GUI界面补充总结(不定期补充)

    一.Java中如何设置各类组件透明 感谢原文:https://kslsi.iteye.com/blog/2096608 补充:Frame透明:AWTUtilities.setWindowOpacity ...

  7. html路径

    一.HTML 相对路径和绝对路径区别分析 HTML初学者会经常遇到这样一个问题,如何正确引用一个文件.比如,怎样在一个HTML网页中引用另外一个HTML网页作为超链接(hyperlink)?怎样在一个 ...

  8. 有了Autolayout的UILabel

    在没有Autolayout之前,UILabel的文字内容总是居中显示,导致顶部和底部会有一大片空缺区域 有Autolayout之后,UILabel的bounds默认会自动包住所有的文字内容,顶部和底部 ...

  9. Java GUI 简单台球游戏模型

    完成效果: 1 package com.neuedu.test; 2 3 import java.awt.Frame; 4 import java.awt.Graphics; 5 import jav ...

  10. #import和#include区别

    #import与#include的类似,都是把其后面的文件拷贝到该指令所在的地方 #import可以自动防止重复导入 #import <> 用于包含系统文件 #import"&q ...