【python系统学习09】while循环

摘要:
当while条件语句为“假”、循环执行完毕过后,流程都会走到else里边执行缩进后的任务。while的循环条件是变量小于等于3。和for循环的不同while的知识点很简单,应用起来也很简单。即当while语句一直成立的时候,while子句就会一直执行。无限循环利用while,我们还可以写一段死循环代码。continue跳过本次循环同for,continue语句在while中的使用作用一样是跳出本次单轮的循环、继续下次的循环。练习题实现1到10的数分别乘以100分别用for循环和while循环俩种方案实现
while循环

和for一样,while也是实现循环代码的一种。

伪代码

先来看一段while的伪代码,了解下其语法格式。

1#伪代码
2while条件语句:
3条件成立执行的[while子句],位于缩进后边
4else:
5循环完毕执行的代码块,位于缩进后边

学过js的能从上边的代码中看出来,这和js的while基本无差。
将代码直译过来都是:当XXX条件成立的时候,执行XXX语句。直到条件不成立,就跳过while语句。

只不过python的特色是循环语句最后都会有自己的else语句。
当while条件语句为“假”、循环执行完毕过后,流程都会走到else里边执行缩进后的任务。就好像出关口、必经之路的意思。

示例代码

来看一段示例代码

1whileVal=1
2whilewhileVal<=3:
3print('while子句:',whileVal)
4whileVal+=1
5else:
6print('while执行完毕,跳出循环后执行了我',whileVal)
7
8#打印结果
9#while子句:1
10#while子句:2
11#while子句:3
12#while执行完毕,跳出循环后执行了我4

在上边的代码中,其执行流程大致如下:

whileVal变量一开始是1。while的循环条件是变量小于等于3。
此时1小于3条件成立,执行while子句的代码。打印“while子句: 1”
然后变量whileVal递增一位,变成2。

再次返回去判断条件,2<=3条件成立,继续执行while子句,打印“while子句: 2”
然后变量whileVal递增一位,变成3。

再次返回去判断条件,3<=3条件成立,继续执行while子句,打印“while子句: 3”
然后变量whileVal递增一位,变成4。

再次返回去判断条件,4<=3条件不成立,不执行while子句结束循环并跳出

于是代码向下,执行else里的代码块,打印“while执行完毕,跳出循环后执行了我 4”
并且我们可以通过打印明确得知,whileVal此时为4了。

和for循环的不同

while的知识点很简单,应用起来也很简单。
不过同样作为循环,他和for循环有什么不同的呢?语法里为什么有了for还要有个while呢?

我们先来想想。上边的代码用for实现怎么写呢?
下边是我的写法

1forforValinrange(1,4):
2print('for子句:',forVal)
3else:
4print('for执行完毕,跳出循环后执行了我',forVal)
5
6#打印结果如下:
7#for子句:1
8#for子句:2
9#for子句:3
10#for执行完毕,跳出循环后执行了我3

观察发现,for最后的变量值为3。
也就是for在特定循环次数内,在你指定循环次数的情况下进行的迭代。

而while是你可以指定一个已经确定的临界值,只要在临界值里边的,都会执行while。即当while语句一直成立的时候,while子句就会一直执行。
而更厉害的是,这个临界值可以是我们知道的(比如上边限制小于等于3,就是我们设定的已知临界值)。
当然,这个临界值也可以是我们不知道的。比如让用户输入的情况,也比如无限循环的情况。代码分别如下。

根据用户输入判断条件

以下代码,是条件根据用户输入进行判断的例子。

1myAge=input('请猜一下我的年龄:')
2whilemyAge!='20':
3print('不对!')
4myAge=input('请再猜一下我的年龄:')
5else:
6print('猜对啦!恭喜你!')

我的人机对话过程
我的人机对话过程

只要用户输入的不是20,这个循环中while子句的内容就会一直执行。

而当用户输入20时,条件不成立(myAge=20,而不是!=20),则跳出循环。执行else内容。

无限循环

利用while,我们还可以写一段死循环代码。

1#请谨慎尝试!
2whileTrue:
3print('我停不下来了~')

在条件语句那里,可以填表达式,同样也可以填写布尔值。

当我们填写布尔值True时,因为条件一直成立。循环永远不停,就形成了我们常说的死循环代码。

continue跳过本次循环

同for,continue语句在while中的使用作用一样是跳出本次单轮的循环、继续下次的循环。
不再赘述,直接上代码:

1continueVal=1
2whilecontinueVal<=5:
3continueVal+=1
4ifcontinueVal==3:
5print('if条件中')
6continue
7else:
8print('continueVal的值:',continueVal)
9else:
10print('循环结束')
11
12#打印结果:
13#continueVal的值:2
14#if条件中
15#continueVal的值:4
16#continueVal的值:5
17#continueVal的值:6
18#循环结束

跳过了==3时的循环,
并且打印了while语句所对应的else语句的内容。

break跳出循环

同for,break语句在while中的使用作用一样是跳出循环。
不再赘述,直接上代码:

1breakVal=1
2whilebreakVal<=5:
3breakVal+=1
4ifbreakVal==3:
5print('if条件中')
6break
7else:
8print('breakVal的值:',breakVal)
9else:
10print('循环结束')
11
12#打印结果:
13#breakVal的值:2
14#if条件中

条件==3时,直接结束循环,
并且不再打印while语句所对应的else语句了。

练习题

实现1到10的数分别乘以100

分别用for循环和while循环俩种方案实现

免责声明:文章转载自《【python系统学习09】while循环》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇好用的Scrum (敏捷开发)工具有哪些?推荐三个顶级的Scrum 管理工具视频提取帧,保存帧,帧合并成视频下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux之文档与目录结构

Linux文件系统结构 Linux目录结构的组织形式和Windows有很大的不同。首先Linux没有“盘(C盘、D盘、E盘)”的概念。已经建立文件系统的硬盘分区被挂载到某一个目录下,用户通过操作目录来实现磁盘读写。 Linux不像Windows那样的系统目录,Linux使用正斜杠"/"而不是反斜杠""来标识目录。 Windows目录: Linux目录:...

机器学习基础:(Python)训练集测试集分割与交叉验证

在上一篇关于Python中的线性回归的文章之后,我想再写一篇关于训练测试分割和交叉验证的文章。在数据科学和数据分析领域中,这两个概念经常被用作防止或最小化过度拟合的工具。我会解释当使用统计模型时,通常将模型拟合在训练集上,以便对未被训练的数据进行预测。 在统计学和机器学习领域中,我们通常把数据分成两个子集:训练数据和测试数据,并且把模型拟合到训练数据上,以...

【python之路30】反射及模块

一、反射 1、反射的基本介绍: 反射是所有程序的专有名词,在java,C#语言中都存在反射,那么什么是反射呢? python中 的反射概括来说:是通过字符串的形式导入模块,并通过字符串的形式去模块中寻找函数并执行。 总结: 可以以字符串的形式去(某个)对象操作的成员。模块实际也是一个对象。 2、利用字符串来导入模块 根据用户输入的模块名(input)来导入...

python 中__setattr__, __getattr__,__getattribute__, __call__使用方法

object._getattr_(self, name) 拦截点号运算。当对未定义的属性名称和实例进行点号运算时,就会用属性名作为字符串调用这个方法。如果继承树可以找到该属性,则不调用此方法 实例instance通过instance.name访问属性name,只有当属性name没有在实例的__dict__或它构造类的__dict__或基类的__dict__...

[python]django rest framework写POST和GET接口

版本声明 python3.6.5 Django-2.0.6 djangorestframework-3.8.2 mysqlclient-1.3.12 1.写一个登录接口,不多说,直接上代码 login_models.py # -*- coding: utf-8 from django.db import models # Create your mode...

设置ubuntu默认输入python进入python3

执行下面两条命令 sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150 如果要切换回来,执行下...