python学习笔记-控制流(if for while break continue)
if语句
if语句用以检查条件:如果条件为真(True),将运行一块语句(称作 if-block 或 if 块),否则将运行另一块语句(称作 else-block 或 else 块)。其中else 从句是可选的。
案例 if.py
number = 23
guess = int(input('Enter an integer : '))
if guess == number: # 新块从这里开始
print('Congratulations, you guessed it.')
print('(but you do not win any prizes!)') # 新块在这里结束
elif guess < number: # 另一代码块
print('No, it is a little higher than that')
# 你可以在此做任何你希望在该代码块内进行的事情
else:
print('No, it is a little lower than that') # 你必须通过猜测一个大于(>)设置数的数字来到达这里。
print('Done')
# 这最后一句语句将在if语句执行完毕后执行
输出:
$ python if.py
Enter an integer : 50
No, it is a little lower than that
Done
$ python if.py
Enter an integer : 22
No, it is a little higher than that
Done
$ python if.py
Enter an integer : 23
Congratulations, you guessed it.
(but you do not win any prizes!)
Done
if.py是如何工作的:
在这个程序中,我们根据用户猜测的数字来检查这一数字是否是我们设置的。我们将变量number设为任何我们所希望的整数,例如23。然后,通过input()函数来获取用户的猜测数。
我们为内置的input()函数提供一串打印到屏幕上的字符串并等待用户的输入。一旦输入了某些内容并按下键盘上的Enter键, input()函数将以字符串的形式返回我们所输入的内容。然后通过int这个类(class)将这个字符串转换成一个整数并将其储存在变量guess中。
接下来,将用户提供的猜测数与我们所选择的数字进行对比。如果相等,就打印一条成功信息。在这里要注意到我们使用缩进级别来告诉Python哪些语句分别属于哪个块。这便是为什么在 Python 中缩进如此重要。
另外需要注意的是if语句在结尾处包含一个冒号——借此向 Python 指定接下来会有一块语句在后头。
然后,检查猜测数是否小于我们选择的数字,如果是,将告诉用户必须猜一个更高一些的数字。在这里我们使用的是elif语句,它们实际上将两个相连的if else-if else 语句合并成一句 if-elif-else语句。这能够使程序更加简便,并且可以减少所需要的缩进量。
elif和else同样都必须有一个冒号在其逻辑行的末尾,后面跟着相应的语句块。
可以在 if 块的 一个 if语句中设置另一个 if语句,并可以如此进行下去——这被称为嵌套的if语句。
elif和else部分都是可选的。一个最小规模且有效的if语句是这样的:
if True:
print('Yes, it is true')
当 Python 完整执行了 if语句及与其相关的 elif和 else子句后,它将会移动至包含 if语句的代码块的下一句语句中。在本例中,也就是主代码块(程序开始执行的地方),其下一句语句就是 print('Done')语句。在完成这些工作后,Python 会发现已行至程序末尾并宣告工作的完成。
while 语句
while语句能够在条件为真的前提下重复执行某块语句。while语句是循环 (Looping) 语句的一种。while语句同样可以拥有else子句作为可选选项。
案例 while.py
number = 23
running = True
while running:
guess = int(input('Enter an integer : '))
if guess == number:
print('Congratulations, you guessed it.') # 这将导致 while 循环中止
running = False
elif guess < number:
print('No, it is a little higher than that.')
else:
print('No, it is a little lower than that.')
else:
print('The while loop is over.') # 在这里你可以做你想做的任何事
print('Done')
输出:
$ python while.py
Enter an integer : 50
No, it is a little lower than that.
Enter an integer : 22
No, it is a little higher than that.
Enter an integer : 23
Congratulations, you guessed it.
The while loop is over.
Done
while.py是如何工作的:
在这一程序中,依旧通过猜数游戏来演示,不过新程序的优点在于能够允许用户持续猜测直至他猜中为止——而无需像在上一节中所做的那样,每次猜测都要重新运行程序。这种变化恰到好处地演示了while语句的作用。
首先将 input与 if语句移到 while循环之中,并在 while 循环开始前将变量running 设置为 True。程序开始时,首先检查变量 running是否为True ,之后再执行相应的 while 块。在这一代码块被执行之后,将会重新对条件进行检查,在本例中也就是 running变量。如果它依旧为True ,将再次执行 while 块,否则将继续执行可选的 else 块,然后进入到下一个语句中。
else代码块在 while循环的条件变为 false时开始执行——这个开始的时机甚至可能是在第一次检查条件的时候。如果 while循环中存在一个else 代码块,它将总是被执行, 除非通过 break语句来中断这一循环。
for循环
for语句是另一种循环语句,特点是会在一系列对象上进行迭代(Iterates),即它会遍历序列中的每一个项目。
案例 for.py
for i in range(1, 5):
print(i)
else:
print('The for loop is over')
输出:
$ python for.py
1
2
3
4
The for loop is over
for.py是如何工作的:
在这一程序中,打印了一序列的数字。我们通过内置的range函数生成这一数字序列。
在这里我们所要做的事情是提供两个数字,而 range将会返回一序列的数字,从第一个数字开始,至第二个数字结束。举个例子,range(1,5) 将输出序列 [1,2,3,4]。在默认情况下, range将会以 1 逐步递增。如果我们向 range提供第三个数字,则这个数字将成为逐步递增的加数。同样举个例子来说明, range(1,5,2)将会输出 [1,3]。要记住这一序列扩展直到第二个数字,也就是说,它不会包括第二个数字在内。
然后 for循环就会在这一范围内展开递归——for i in range(1,5) 等价于 for i in [1,2,3,4],这个操作依次将队列里的每个数字(或是对象)分配给i ,一次一个,然后以每个 i的值执行语句块。在本例中,这一语句块所做的就是打印出这些值。
else部分是可选的。当循环中包含else时,它总会在for循环结束后开始执行,除非程序遇到了 break 语句。
break语句
break语句用以中断(Break)循环语句,也就是中止循环语句的执行,即使循环条件没有变更为False ,或队列中的项目尚未完全迭代依旧如此。
有一点需要尤其注意,如果中断了一个for 或 while循环,任何相应循环中的else块都将不会被执行。
案例 break.py
while True:
s = raw_input('Enter something : ')
if s == 'quit':
break
print('Length of the string is', len(s))
print('Done')
输出:
$ python break.py
Enter something : Programming is fun
Length of the string is 18
Enter something : When the work is done
Length of the string is 21
Enter something : if you wanna make your work also fun:
Length of the string is 37
Enter something : use Python!
Length of the string is 11
Enter something : quit
Done
break.py是如何工作的:
在本程序中,重复地接受用户的输入内容并打印出每一次输入内容的长度。通过检查用户输入的是否是quit 这一特殊条件来判断是否应该终止程序。我们通过中断循环并转进至程序末尾来结束这一程序。
输入字符串的长度可以通过内置的len函数来找到。
break语句同样可以适用于for 循环。
continue语句
案例 continue.py
while True:
s = raw_input('Enter something : ')
if s == 'quit':
break
if len(s) < 3:
print('Too small')
continue
print('Input is of sufficient length') # 自此处起继续进行其它任何处理
输出:
$ python continue.py
Enter something : a
Too small
Enter something : 12
Too small
Enter something : abc
Input is of sufficient length
Enter something : quit
continue.py 是如何工作的:
在本程序中,接受来自用户的输入内容,但是只有在输入的字符串其长至少 3 字符我们才会对其进行处理。为此,我们使用内置的 len函数来获取字符串的长度,如果其长度小于3,我们便通过使用 continue语句跳过代码块中的其余语句。否则,循环中的剩余语句将被执行,并在此处进行我们所希望的任何类型的处理。
continue语句同样能用于 for循环。
python学习笔记-控制流(if for while break continue)的更多相关文章
- OpenCV之Python学习笔记
OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...
- Python学习笔记(十)
Python学习笔记(十): 装饰器的应用 列表生成式 生成器 迭代器 模块:time,random 1. 装饰器的应用-登陆练习 login_status = False # 定义登陆状态 def ...
- 【python学习笔记】9.魔法方法、属性和迭代器
[python学习笔记]9.魔法方法.属性和迭代器 魔法方法:xx, 收尾各有两个下划线的方法 __init__(self): 构造方法,创建对象时候自动执行,可以为其增加参数, 父类构造方法不会被自 ...
- 【python学习笔记】5.条件、循环和其他语句
[python学习笔记]5.条件.循环和其他语句 print: 用来打印表达式,不管是字符串还是其他类型,都输出以字符串输出:可以通过逗号分隔输出多个表达式 import: 导入模块 impo ...
- Python学习笔记九
Python学习笔记之九 为什么要有操作系统 管理硬件,提供接口. 管理调度进程,并且将多个进程对硬件的竞争变得有序. 操作系统发展史 第一代计算机:真空管和穿孔卡片 没有操作系统,所有的程序设计直接 ...
- Python学习笔记,day5
Python学习笔记,day5 一.time & datetime模块 import本质为将要导入的模块,先解释一遍 #_*_coding:utf-8_*_ __author__ = 'Ale ...
- Deep learning with Python 学习笔记(10)
生成式深度学习 机器学习模型能够对图像.音乐和故事的统计潜在空间(latent space)进行学习,然后从这个空间中采样(sample),创造出与模型在训练数据中所见到的艺术作品具有相似特征的新作品 ...
- Deep learning with Python 学习笔记(3)
本节介绍基于Keras的使用预训练模型方法 想要将深度学习应用于小型图像数据集,一种常用且非常高效的方法是使用预训练网络.预训练网络(pretrained network)是一个保存好的网络,之前已在 ...
- Deep learning with Python 学习笔记(2)
本节介绍基于Keras的CNN 卷积神经网络接收形状为 (image_height, image_width, image_channels)的输入张量(不包括批量维度),宽度和高度两个维度的尺寸通常 ...
随机推荐
- Android开发之百度地图的简单使用
越来越多的App运用到了定位,导航的这些功能,其实实现一个自己的百度地图也是非常的简单,这篇博客将会教你简单的实现一个百度地图.看一下效果图: 第一步:要使用百度地图,必须要有百度地图的Key,要获得 ...
- 读写大“二进制”文件,不必申请很大内存(fopen,fread,fwrite,fclose)
<?php /** * 读写大二进制文件,不必申请很大内存 * 只有读取到内容才创建文件 * 保证目录可写 * * @param string $srcPath 源文件路径 * @param s ...
- pl/sql登录时,数据库下拉框没有任何内容
打开plsql时突然发现database下拉框里面没有任何配置信息,如下图: 解决方法: 找到环境变量TNS_ADMIN,修改存放tnsnames.ora的路径:
- C语言时间处理
一.简介 时间处理在编程中经常遇到,包括程序的运行时间和显示时间等.在标准C中, 日期和时间的处理包含在 time.h 的头文件中,需要使用日期和时间相关的类型的函数的话, 需要导入time.h. 二 ...
- Sketch插件新利器——使用Mockplus DS制作设计规范
Sketch,作为一款专为图标和界面设计而打造的优质矢量绘图工具,也是设计师们制作和完善公司企业内部设计规范系统不可或缺的设计工具. 然而,逐个导出和上传Sketch编辑优化的设计系统资源费时而费力. ...
- 避免Block中的强引用环
[避免Block中的强引用环] In manual reference counting mode, __block id x; has the effect of not retaining x. ...
- Some details of UIKit
[Some details of UIKit] 1.UIViewController的toolbarItems属性与UINavigationController配合使用. 2.The view for ...
- Kali linux切换语言为中文
echo LANG="zh_CN.UTF-8" > /etc/default/locale
- 图解利用Word来发布博客
目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...
- Linux 基础教程 33-硬盘分区及挂载
挂载命令 在Windows系统中如果插入了U盘.移动硬盘.光驱等,只要能被Windows系统识别出来,则系统会进行自动挂载并添加盘符,然后我们就可以访问,而这一切均由系统完成,用户并不需要做任 ...