Python基础概念_4_控制流程
控制流程
5 控制流程
5.1 简介
到目前为止我们所见到的程序,总是有一系列的语句,Python会很忠实地按照它们的顺序执行。如果你想要改变语句的执行顺序,该怎么办呢?比如:根据时间打印“早上好”或者“晚上好”。聪明的你可能已经猜到了。对,通过控制流程语句来实现。在Python 中常用的控制流语句有: if、for 和while
5.2 If语句
a) If语句简介
让我们先从一个轻松的话题开始认识if吧。话说有一位焦急的母亲在为自己的女儿物色男朋友,于是她们之间就有了下面的对话:
…
女儿:多大年纪了?
母亲:26。
女儿:长的帅不帅?
母亲:挺帅的。
女儿:收入高不?
母亲:不算很高,中等情况。
女儿:是公务员不?
母亲:是,在税务局上班呢。
女儿:那好,我去见见。
…
我们看张图吧,这样会更直观:
机智的你会发现这个女孩在不停的做条件判断,直至满足自己的条件才见。所以if语句翻译过来就是如果的意思,也就是判断是否满足某个条件,而else呢则是上个if的反面。比如这里判断年龄是否大于30,那么else自然是小于等于30了。如果再判断则使用elif用一个新的条件再判断。
a) 仅含If语句
>>> salary=10001
>>> if(salary>10000):
... print("老板")
结果:老板
b) If else语句
>>>salary=9999
>>>if(salary>10000):
... print("老板")
... else:
... print("屌丝")
...
结果:屌丝
c) 多层If语句
>>>if stafflevel == 3:# 判断num的值
... print ('老板')
... elifstafflevel == 2:
... print ('经理')
... elifstafflevel == 1:
... print ('员工')
... elifstafflevel < 0:# 值小于零时输出
... print ('员工等级不能小于0')
... else:
... print ('输入条件异常,请检查你的输入')# 条件均不成立时输出
...
结果:老板
5.3 while语句
while翻译过来是当。
“当山峰没有棱角的时候
当河水不再流
当时间停住日夜不分
当天地万物化为虚有
我还是不能和你分手
不能和你分手”
a) 普通while语句
while语句类似if,即可当满足某个条件时执行,不满足时跳出循环。见如下示例:
>>> stafflevel=3
>>> while(stafflevel <6):
... stafflevel+=1
... print("员工等级:"+str(stafflevel))
...
结果:
员工等级:4
员工等级:5
员工等级:6
b) 结合else的while语句
>>> stafflevel=3
>>> while(stafflevel <6):
... stafflevel+=1
... print("员工等级:"+str(stafflevel))
... else:
... print("while循环结束")
...
结果:
员工等级:4
员工等级:5
员工等级:6
while循环结束
5.4 for语句
这里我们举个例子,假设周一到周五是个时间序列,那么每天我们都要周而复始的去上班,只有到周末时才休息。这就是个For循环的例子,流程见下图示意:
>>> for num in range(1,6):
... print("星期"+str(num)+"上班")
...
结果:
星期1上班
星期2上班
星期3上班
星期4上班
星期5上班
for循环另一例
如果你想遍历一个字典里的元素可以这么写:
>>> fruits = ['banana','apple', 'mango']
>>> for fruit in fruits:
... print ('当前水果 :', fruit)
...
结果:
当前水果 : banana
当前水果 : apple
当前水果 : mango
5.5 break语句
Break语句是用来终止循环的,可以使用在for循环或者while循环里。
下面我给个一对情侣因为说谎分手的例子,话说一个女生很在意自己男朋友是否说话,但是不能接受一而再再而三的撒谎,所以当她男朋友说了第5次说谎时,她终于提出了分手。如下就是代码示例:
>>> for num inrange(1,8):
... print("第"+str(num)+"次撒谎")
... if (num==5):
... print("已经第5次说谎了,对不起我们分手吧!")
... break
...
第1次撒谎
第2次撒谎
第3次撒谎
第4次撒谎
第5次撒谎
已经第5次说谎了,对不起我们分手吧!
注:本来这位女生的男朋友还准备撒谎7次了,现在看来第5次就GameOver了。
5.6continue语句
我们还来举个女生选男朋友的例子吧,这次通过工资来判断,发现月工资小于10000的直接放弃掉,只要高于这个数的。程序见下:
>>> for num inrange(9000,13000,1000):
... print("当前工资:"+str(num))
... if(num<=10000):
... print("工资太低了,"+str(num)+"不想见")
... continue
... print("执行不到的代码段!")
... print("这个男的工资"+str(num)+"差不多,我们见见吧!")
...
结果:
当前工资:9000
工资太低了,9000不想见
当前工资:10000
工资太低了,10000不想见
当前工资:11000
这个男的工资11000差不多,我们见见吧!
当前工资:12000
这个男的工资12000差不多,我们见见吧!
注:
1) 黄色高亮处不会被执行到,这是因为当num不断增加到11000时并不满足num<=10000的条件,此时会跳转到外层的for循环,但不会执行跟continue一级的后面的语句。
2) 初学者往往会搞不清楚break和continue的区别,其实很简单,break是结束整个外层循环,而continue在结束了自己条件后外层的循环还会继续执行。当然两者也有共同点就是跟他们一级的语句将永远不会被执行到。
注意看上面例子你会发现for循环从9000一直到12000,当然这里的步长是1000。也就是说没中断。但是如果我改成break程序,你会发现满足break里的条件时,for循环会立刻终止,也就是到10000时就停了。
>>> for num inrange(9000,13000,1000):
... print("当前工资:"+str(num))
... if(num>=10000):
... print("工资太高了,"+str(num)+"不想见")
... break
... print("执行不到的代码段!")
... print("这个男的工资"+str(num)+"比较低,我们见见吧!")
...
5.7 总结
通过本章的学习我们已经掌握了如何使用三种控制流程的语句: if 、while 和for 以及控制循环的break 和continue 语句。它们是Python 代码段中最常用的部分。接下来,我们将学习如何创建和使用函数。
Python基础概念_4_控制流程相关推荐
- java 基本语法与流程控制_Java基础语法之控制流程
Java基础语法之控制流程 语言的流程控制提供了对程序步骤的基本方法. 三大流程控制语句:顺序.选择.循环 复合结构 复合结构是以一个区块为单位的,由"{"开始"}&qu ...
- Python基础概念_14_常见术语
常见术语 15 常见术语 15.1 简介 Python里有一些常见的专业名词.用语,我们一般统称为术语.为了更方便的学习python我们通过表格的方式列举了常用的术语和单词以及工具. 15.2 常见术 ...
- Python基础概念_2_基础概念
基础概念 3 基础概念 3.1 数字 计算机最初设计时就是为了做数据运算的,所以针对这个概念应该不会陌生.在Python的世界里数主要有三种类型: 整数.浮点数和复数,详见下例: a) 5 是一个整数 ...
- Git基础概念与Flow流程介绍
文章目录 Git相关 基本概念 常见客户端 TortoiseGit Sourcetree Intellij Idea 命令行 常用命令 存储区域 命令之 add & commit &p ...
- (2)RabbitMQ基础概念及工作流程详解
上一节中我们对MQ做了一个概要介绍,这一节开始我们选取RabbitMQ开始进行学习,本节将会RabbitMQ做个简单介绍,并且会对其常见的基础概念做个讲解,最后会简单介绍一下RabbitMQ的工作流程 ...
- 原python基础概念整理_Python从头学之基础概念整理
学程序真的是一个无法间断的过程,只要你懈怠,种种原因都是你的理由.然而造成的后果就是到目前位置,一个心目中的项目都没有完美的做出来: 归根结底,其实就是基础没有打好,因为每一个复杂的功能都是由很多简单 ...
- python基础知识05-控制流程
控制流程 1.条件判断 python中的代码从上到下执行. if 条件: 缩进 语句1 elif 条件2: 缩进 语句2 (-或者写pass关键字.不写任何代码的时候,防止报错.) ... else: ...
- Python基础概念_8_字符串处理
字符串处理 9 字符串处理 9.1 简介 在前面的章节里我们介绍了常用的数据类型,其中字符串并没有单独拎出来讲,那么接下来我们将重点讲下它.字符串一般是通过引号('或")包裹起来的,因为它有 ...
- python核心理念_《三天搞定Python基础概念之第一天》中文版
前言: 首先,非常感谢Jiang老师将其分享出来!本课件非常经典! 经过笔者亲测,竟然确实只要三天,便可管中窥豹洞见Python及主要库的应用.实属难得诚意之作! 其次,只是鉴于Jiang老师提供的原 ...
最新文章
- Delphi中使用IXMLHTTPRequest如何用POST方式提交带参
- 主键需要键索引吗_MySQL 索引的知识点都在这里了,建议收藏!
- LVS的简单示例(一)
- python评分卡建模-卡方分箱(2)之代码实现
- exit()与_exit()函数的区别
- js学习总结----弹性势能动画之抛物线运动
- Codeforces Round #757 (Div. 2)
- js深度复制一个对象使用JSON.stringify是最好的办法吗
- vscode终端乱码
- mysql集群负载均衡,这些知识你必须拿下
- C++11中shared_ptr智能指针用法
- ArcGIS教程:MapGIS向ArcGIS数据格式转换方法
- MATLAB数值计算
- Flutter AspectRatio 宽高比设定
- 人工智能相关书籍介绍
- 10天内我国痛失20位两院院士!原中科院副院长王佛松逝世,享年89岁
- R作图配色---颜色提取及色彩搭配
- 巨控GRM110无线通信模块
- 51单片机外部中断的使用以及优先级设置
- 第六天----数据结构笔记
热门文章
- VTK:vtkAnimationScene用法实战
- opengl加载显示3D模型3d类型文件
- JavaScript实现hamiltonianCycle哈密尔顿图算法(附完整源码)
- OpenCASCADE绘制测试线束:简单的向量代数和测量之测量命令
- OpenCASCADE:使用扩展数据交换 XDE之自定义注释note
- wxWidgets:测试样品
- wxWidgets:编写非英语应用程序
- boost::sort模块float_sort 右移函子排序示例
- boost::mp11::mp_none_of_q相关用法的测试程序
- boost::rational用法的测试程序