循环简单来说就是让一段代码按你想要的方式多次运行。软件拥有强大的运算能力,就是由循环提供的。

在 Python 中支持的循环由两种:while 循环 和for 循环。

现在我们先来讲while循环。

while 的中文意思为当...的时候。顾名思义,当条件满足的时候做什么事情。

来看看 while 语句的格式:

while 条件:
当条件成立的时候,执行这里的语句 # 注意缩进

while 循环,当条件满足的时候,执行 while 包含的语句块,直到条件不满足,则退出循环,继续执行后面的语句。

while 主要用于无法确定循环次数的时候:

# 看一个练习:
# 当一个变量小于5时,持续打印变量的值,超过5则退出。
i = 0
while i < 5:
print(i)
i += 1

while 循环很容易出现死循环。上面的例子中,如果我们忘了让 i 的值自增,那么 i < 5会一直成立。print 语句会一直打印。试一试?!

如果不幸出现死循环,在 IDLE 工具中,直接按 Ctrl + C 强行结束即可。如果编码工具,点红色的方块,马上结束运行。

由于 while 容易出现死循环,所以我们在实际使用过程中,while 循环的使用频率远低于我们后面要讲的 for 循环。

不过对于某些无法确定次数的循环,或者需要条件触发条件结束的情况,用 while 更方便。

# 再看一个例子
# 输入一个数,当这个数的平方大于100时退出,否则持续接收用户输入
i = 0
while i**2 <= 100:
i = int(input('请输入一个数:'))

上面的例子,无法确定用户会输入多少次才会出现平方大于100的情况,那么我们就可以使用 while 循环。

另外, while 循环也会经常和 break 语句组合来用。

break 语句用于结束当前循环

我们可以通过死循环加上在合适时机通过 break 退出循环来达到我们想要的效果。

把上面的平方例子改一下:

while True:      # 保持一直循环的状态
i = int(input('请输入一个数:'))
if i**2 > 100:
break

是不是容易书写和理解一些?

我们可以把上一节的练习,全部加上 while 循环,这样让我们可以一直操作,直到我们厌烦为止,而不用每运行一次都要重新再执行。

比如第一个练习:

输入一个int型的数据,判断这个数是否能被2整除,如果能被2整除,那么输出“这个数是偶数”,否则输出“这个数是奇数”。

# 持续判断,直到用户输入0的时候 ,退出。
while True:
num = int(input('请输入一个数:'))
if num == 0:
print('你选择了退出!')
break
elif num % 2 == 0: # 一个数取余2为0则是偶数
print('这个数是偶数!')
elif num % 2 == 1:
print('这个数是奇数!')
else:
print('输入有误,请输入一个整数!')
# 试着把 num==0 的条件放在后面,试试还可以退出么?为什么?

本节练习:

  1. 首先把上一节的练习全部改造为 while 语句,一直运行直到使用你自己希望的方式结束循环;
  2. 使用 while 循环实现 100 以内的累加(包括100)
  3. 纸张可以无限次对折,纸张厚度为0.07毫米。问多少次对折至少可以超过8848米?(注意单位)

Python 极简教程(十三)while 循环的更多相关文章

  1. Python 极简教程(八)字符串 str

    由于字符串过于重要,请认真看完并保证所有代码都至少敲过一遍. 对于字符串,前面在数据类型中已经提到过.但是由于字符串类型太过于常用,Python 中提供了非常多的关于字符串的操作.而我们在实际编码过程 ...

  2. python极简教程04:进程和线程

    测试奇谭,BUG不见. 大家好,我是谭叔. 这一场,主讲python的进程和线程. 目的:掌握初学必须的进程和线程知识. 进程和线程的区别和联系 终于开始加深难度,来到进程和线程的知识点~ 单就这两个 ...

  3. python极简教程01:基础变量

    测试奇谭,BUG不见. 其实很久之前,就有身边的同事或者网友让我分享一些关于python编程语言的教程,他们同大多数自学编程语言的人一样,无外乎遇到以下这些问题: 网络上的资料过多且良莠不全,不知道如 ...

  4. python极简教程05:生成器和匿名函数

    测试奇谭,BUG不见. 讲解之前,我先说说我的教程和网上其他教程的区别: 1 我分享的是我在工作中高频使用的场景,是精华内容: 2 我分享的是学习方法,亦或说,是指明你该学哪些.该重点掌握哪些内容: ...

  5. Python 极简教程(一)前言

    现在 Python 用处很多,学的人也很多,其流行程度自不必说.但是很多人学 Python 的时候都遇到过问题,特别对于非计算机专业毕业的人来说. 现在的教程非常多,但是绝大部分对于初学者都不够友好. ...

  6. Python 极简教程(三)数据类型

    每种语言都有各种数据类型.这就像在现实生活中,我们计数的时候需要用到数字,在表述金额.重量.距离等需要精确计数时用到小数,在日常交谈中要用文字,等等.在计算机语言中,为了表述不同的情况,也需要用到各种 ...

  7. Python 极简教程(二)编码工具

    Python 的编码工具很多.目前最流行的是 pycharm,关于 pycharm 的安装使用请参考 PyCharm安装使用教程. 而学习过程中,我觉得最好用的,还是 Python 自带的练习工具 I ...

  8. python极简教程07:封装、多态和继承

    测试奇谭,BUG不见. 这一场主讲python的面向对象部分--封装.多态和继承. 目的:掌握Python面向对象的三个核心概念. 封装 01 什么是封装? 封装的目的是,保护隐私.通俗的讲:不想让别 ...

  9. python极简教程08:对象的方法

    测试奇谭,BUG不见. 讲解之前,我先说说我的教程和网上其他教程的区别: 1 我分享的是我在工作中高频使用的场景,是精华内容: 2 我分享的是学习方法,亦或说,是指明你该学哪些.该重点掌握哪些内容: ...

随机推荐

  1. [Chromium文档转载,第005章]Calling Mojo from Blink

    For Developers‎ > ‎Design Documents‎ > ‎Mojo‎ > ‎ Calling Mojo from Blink Variants Let's as ...

  2. SP1026 FAVDICE - Favorite Dice 数学期望

    题目描述: 一个n面的骰子,求期望掷几次能使得每一面都被掷到. 题解:先谈一下期望DP. 一般地,如果终止状态固定,我们都会选择逆序计算. 很多题目如果顺序计算会出现有分母为 0 的情况,而逆序计算中 ...

  3. react-native flatlist setState修改数据视图不刷新解决方案

    给flatlist添加属性:handleMethod = {({viewableItems}) => this.handleViewableItemsChanged(viewableItems) ...

  4. Activiti工作流框架学习(一)——环境的搭建和数据表的了解

    一.什么是工作流 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实现 ...

  5. Vijos——T1406 拉力赛

    https://vijos.org/p/1460 描述 车展结束后,游乐园决定举办一次盛大的山道拉力赛,平平和韵韵自然也要来参加大赛. 赛场上共有n个连通的计时点,n-1条赛道(构成了一棵树).每个计 ...

  6. MongoDB(六)java操作mongodb增删改查

    java操作mysql数据库的代码我们已经了如指掌了.增删改查,java对mongodb数据库也是类似的操作,先是数据库连接.再是进行操作. 首先我们进入进入admin数据库.然后建立自己的数据库te ...

  7. 18.链表管理内存实现c语言自动释放内存

    运行截图: 创建记录分配的内存地址大小和地址的结构体 struct MEM { void *p; int size; }; 创建管理内存结构体的链表 typedef struct LinkNode { ...

  8. asp.net大数据导出execl实现分开压缩并下载

    asp.net大数据导出execl实现分开压缩并下载 /// <summary> /// 导出数据到EXCEL 多个表的 /// </summary> /// <para ...

  9. SuSe Linux Enterprise Server 10 With Sp2 安装过程图解

    SuSe Linux Enterprise Server 10 With Sp2 安装过程图解 650) this.width=650;" style="border-right- ...

  10. Kinect 开发 —— Kinect Interaction 交互控件

    Kinect Interactions 提供了一些新的带有姿势识别的控件如 push-to-press 按钮, grip-to-pan 列表控件, 而且支持多用户,同时二个人进行的交互,这些新添加的控 ...