流程控制

在以前的代码中,所有的代码都是交由 Python 忠实地从头执行到结束。但是这些远远不够。很多时候需要根据不同的情况执行不同的代码。

如果你想改变这一工作流程,应该怎么做?

就像这样的情况:你需要程序作出 一些决定,并依据不同的情况去完成不同的事情,例如依据每天时间的不同打印出 '早上好' 'Good Morning' 或 '晚上好' 'Good Evening'?

需要用到流程控制!

python 共提供了 3 种流程控制: ifwhilefor...in

一、分支语句

所谓分支语句,就是条件满足,才会执行某个分支。

if 翻译成中文就是如果的意思。

在各大编程语言里面,if 语句应该是最为著名的语句。

if 用来判断一个条件是否为 True , 如果是 True 执行相应的代码,如果是 False 执行另外的代码(else 语句,可选)。

1.1 if语句用法

语法:

if 条件:
#代码块1
elif 条件:
#代码块2
elif ...
else:
#代码块3

说明:

  1. python 的语法结构与其他语言差别很大。python 完全是靠缩进来组织代码结构。 if、elif、else 代码行结束的时候要使用 :
  2. if 后面跟的是条件,如果是 true 就执行代码块1。代码块1相比 if 一定要缩进,才能算是 if 代码块中的内容。缩进的时候,建议总是以 4 个空格为单位。 把编辑器或者IDE 工具的 tab 键设置为 4 个空格。
  3. 如果 if 后面的条件是 False ,则会判断紧接着的 elif 的条件,如果是 True 则执行代码块2。否则就继续判断后面的条件。
  4. 如果前面的所有条件都是 False ,则 执行 else 中的代码块 3。
  5. elif、else 语句是可选的。可以只有 if, 但是不能只有 elifelse
  6. 条件理论上可以是任意类型的,False、0、[]、{}、()、""、None 当做 False 来用,其余做 True 来用。 但是在使用的时候最好直接用 True 或 False
  7. 一旦有一个代码块执行结束后,整个 if 语句也就运行行结束了。
num = 50
# 把从键盘读取到的字符串形式的数字,转换成整数
guess = int(input("请输入一个1-100的整数"))
if guess > 50:
print("你输入的是", guess, "比", num, "大了!")
elif guess == 50:
print("你输入的是", guess, "恭喜你猜对了!")
else:
print("你输入的是", guess, "比", num, "小了!")

结果:

1.2 if语句嵌套

if 语句也可以嵌套。嵌套的时候一定要注意缩进!_

# 下面的代码从键盘输入三个整数,然后判断并输出最大值
num1 = int(input("请输入第 1 个整数:"))
num2 = int(input("请输入第 2 个整数:"))
num3 = int(input("请输入第 3 个整数:")) if num1 > num2:
if num1 > num3:
print("你输入的最大值是:" + str(num1)) # str()函数,可以把其他类型数据转换成字符串
else:
print("你输入的最大值是:" + str(num3))
else:
if num2 > num3:
print("你输入的最大值是:" + str(num2))
else:
print("你输入的最大值是:" + str(num3))

python 中没有 switch 语句。因为 switch 能做的, if 都可以做。 python 的设计理念就是精简!有一种方法能做的,绝不会提供第二种方法!

二、循环语句

在编程中还有一个更重要的需求,就是重复的执行一些动作。这个时候就需要用到循环语句。

python 共提供了 2 种循环语句。 while 循环和 for...in 循环。

while 用来做一些通用性的循环。 而 for...in 用来迭代对象(列表、元组、集合等)中的内容。

我们今天只学习 while , for...in 待讲完数据结构之后再进一步学习。


2.1 while 基本用法

while 循环语法:

while 条件:
#循环体
else:
#条件为 False 时执行

说明:

  1. while 的条件与 if 的条件是一样的。
  2. 执行流程:先判断 while 后的条件,如果是 True 则开始执行循环体,执行完毕后,再去判断 条件,如果True 继续执行循环体...
  3. while 中的 else 是可选的。这和其他语言的很大的区别,其他的语言中 while 中没有 else。 当 while 中的条件为 False 时,开始执行 else 中语句。
  4. 如果提供了 else 语句,则 else 语句一定执行。除非你是通过 break 语句退出的循环。
# 输出 0 - 9
i = 0
while i < 10:
print(i)
i = i + 1
else:
print("else 语句:" + str(i))

2.2 break

break 用在循环中(while 和 for...in 都可以用),用于提前结束整个循环。

有一点需要注意:如果是 break 结束的循环,else 语句也不会执行。

i = 0
while i < 10:
print(i)
i = i + 1
if i == 6:
break else:
print("else 语句:" + str(i))

2.3 continue

continue 用来提前结束本轮循环,然后继续判断,开始下一轮循环。

break 语句和 continue 语句的区别:

​ 就像在打游戏循环赛,break 是彻底退出比赛,洗洗睡觉。continiue 是在打的过程中提前把这个一局比赛结束,然后开始下一局比赛。

# 输出偶数
i = 0
while i < 10:
i = i + 1
if i % 2 == 1:
continue # 如果是奇数,则结束本轮循环,本轮后面的 print() 方法不再执行。 print(i)
else:
print("else 语句:" + str(i))

Python第四章-流程控制的更多相关文章

  1. Python第四天 流程控制 if else条件判断 for循环 while循环

    Python第四天   流程控制   if else条件判断   for循环 while循环 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Python第二天 ...

  2. C#入门经典第四章-流程控制-1

    布尔类型:

  3. 疯狂JAVA——第四章 流程控制与数组

    4.5 数组类型 数组也是一种类型.它本身是引用类型.例如int是一种基本类型,int[]就是引用类型. 两种定义数组的方式: 1.type[] arrayName; 2.type arrayName ...

  4. Python分支结构与流程控制

    Python分支结构与流程控制 分支结构 if 语句 分支结构在任何编程语言中都是至关重要的一环,它最主要的目的是让计算机拥有像人一样的思想,能在不同的情况下做出不同的应对方案,所以if语句不管是在什 ...

  5. 简学Python第四章__装饰器、迭代器、列表生成式

    Python第四章__装饰器.迭代器 欢迎加入Linux_Python学习群  群号:478616847 目录: 列表生成式 生成器 迭代器 单层装饰器(无参) 多层装饰器(有参) 冒泡算法 代码开发 ...

  6. Excel VBA入门(四)流程控制2-循环控制

    所谓循环控制,即在循环执行一段代码,用于完成一些重复性任务. VBA中的循环控制语句主要有3种:for.while.loop.对于大多数人来说,for的使用频率最高,而我个人也觉得for是最为灵活的, ...

  7. python语法入门之流程控制

    python语法入门之流程控制 流程控制是指控制流程,具体指控制程序执行的流程. 流程控制分为三种: 1.顺序结构 程序从上而下的正常执行(正常执行的代码就是顺序结构) 2.分支结构 赋予程序人的思维 ...

  8. 【Python】Java程序员学习Python(六)— 流程控制、异常处理

    和Java语言一样,Python也有基本的流程控制,简单了解下即可. 一.流程控制的元素 条件 条件就是布尔值或者布尔值的表达式,要么是True要么是False. 代码块 在Python中,代码块不是 ...

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

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

随机推荐

  1. Mongodb 对于Sort排序能够支持的最大内存限制查看和修改

    MongoDB Server对于Sort排序能够支持的最大内存限制查看: > use admin switched to db admin >db.runCommand({ getPara ...

  2. css 进度条的文字根据进度渐变

    需求 1.进度条里面的文字需要根据进度的长度而变化 原理 用两个一模一样的样式的 div 重叠起来 效果 字体开始为 蓝色,跟随进度条变为 白色 在线预览: https://jsfiddle.net/ ...

  3. centos7搭建ceph集群

    一.服务器规划 主机名 主机IP 磁盘配比 角色 node1 public-ip:10.0.0.130cluster-ip:192.168.2.130 sda,sdb,sdcsda是系统盘,另外两块数 ...

  4. 开源字体不香吗?五款 GitHub 上的爆红字体任君选

    作者:HelloGitHub-ChungZH 在编程时,用一个你喜欢的字体可以大大提高效率,越看越舒服.这篇文章就推荐 5 个在 GitHub 上优秀的字体供大家选择吧! 1. Iosevka 网站: ...

  5. PTP从时钟授时模块应用及介绍

    PTP从时钟授时模块应用及介绍 随着网络技术的不断进步和发展,NTP网络时间协议已经满不了一些精密设备和仪器的精度要求,这时就需要精度更高的PTP协议,PTP协议是一种应用于分布式测量和控制系统中的精 ...

  6. python笔记28(TCP,UDP,socket协议)

    今日内容 1.TCP协议 协议的特点:三次握手,四次挥手: 2.UDP协议 3.OSI七层模型:每层的物理设备,每一层协议. 4.代码部分: ①介绍socket: ②使用socket完成tcp协议的w ...

  7. JS中的reduce()详解

    reduce()作为一个循环使用.接收四个参数:初始值(上一次返回值),当前元素值,当前元素下标,原数组. 应用  作为累加器使用 var a=[4,5,6,7,8] //item代表一次回调的值 初 ...

  8. Java集合04——fail-fast&fail-safe 详解

    在前几个回合中,我们已经详细了解过了 Java 集合中的List.Set 和 Map,对这部分内容感兴趣的朋友可以关注我的公众号「Java面典」了解.今天我们将为各位介绍集合的失败机制--fail-f ...

  9. MATLAB神经网络(7) RBF网络的回归——非线性函数回归的实现

    7.1 案例背景 7.1.1 RBF神经网络概述 径向基函数是多维空间插值的传统技术,RBF神经网络属于前向神经网络类型,网络的结构与多层前向网络类似,是一种三层的前向网络.第一层为输入层,由信号源结 ...

  10. [转载]Linux服务器丢包故障的解决思路及引申的TCP/IP协议栈理论

    Linux服务器丢包故障的解决思路及引申的TCP/IP协议栈理论 转载至:https://www.sdnlab.com/17530.html 我们使用Linux作为服务器操作系统时,为了达到高并发处理 ...