回顾

在Python进阶记录之基础篇(三)中,我们介绍了Python中分支结构if语句的相关知识以及输入函数input()的基本用法。if语句在我们日后的编程中会经常使用到,今天我们讲一下另一个重要的结构——Python中的循环结构。

循环结构的概念与意义

有时我们会需要在程序中重复的执行某条或某些指令,例如打印1000次“Hello World”,我们总不能老老实实地写1000行print("Hello World")吧,这样岂不是又累又无聊?因此我们就会用到循环结构。

循环结构指的是在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件,判断继续执行某个功能还是退出循环。循环结构的主要作用是可以减少代码的重复书写。循环结构需要三个重要的要素:循环变量、循环体和循环终止条件。

不像Java、C等语言有多种构造循环结构的方法,在Python中构造循环结构的方法只有有两种,一种是for-in循环,一种是while循环。

for-in循环

如果明确的知道循环执行的次数或者是要对一个容器(例如列表list、字典dict等,这些知识点后面内容会介绍)进行迭代,那么我们推荐使用for-in循环。Python中for-in循环的一般格式如下,其中,for-in循环中的else是Python相比于其他编程语言的一个特点,当循环体正常结束时会走else中的执行体。(一般情况下我们不使用else。)

 for 循环变量 in 循环终止条件: 循环体 else: 循环体正常结束时的执行体

熟悉C或Java的朋友应该知道,当进行已知次数循环时,C或Java会使用类似“for (i=0; i

range()方法在Python中的定义如下:range(start, stop[, step])。根据传参方式可以有三种不同的用法,可以很灵活地获取到我们所需要的整数序列。

1、传一个参数。例如range(5),获取的是0,1,2,3,4这5个数,传n就是从0到n-1这n个数。

range(5)

2、传两个参数。例如range(1, 5),获取的是1,2,3,4这4个数,包括开头,不包括结尾。事实上,传一个参数时只是省略了0,range(5)实际上就是range(0, 5),只是当第一个参数为0时我们一般都会省略。

range(1, 5)

3、传三个参数。我们有时并不是需要连续的整数,例如要获取范围内的奇数,就可以使用第三个参数来设置步长,range(1, 5, 2),获取的是1,3这2个数,步长为2表示每隔两个数取一次。

range(1, 5, 2)

有了range的辅助之后,我们就可以使用for-in循环进行已知次数的循环了。现在有如下需求:计算1-100这100个数的和,并输出结果。

计算1-100的和

与分支结构if语句一样,循环结构也是可以嵌套的。我们利用for-in循环的嵌套打印出九九乘法表。

九九乘法表

while循环

当我们不知道循环次数时,使用for-in循环就不那么合适了,这时我们一般会使用Python中的另一种构造循环的方法——while循环。while循环通过一个能够产生或转换出布尔值的表达式来控制循环,只要表达式的值为True就进入循环体,直至表达式的值为False结束循环。Python中while循环的一般格式如下。(一般情况下我们不使用else。)

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

现在有这样一个需求:一个整数从1开始,如果当前是奇数就乘2,如果当前是偶数就加1,直到该数大于20为止,输出整个过程。这里我们使用while循环配合if语句实现。

while循环

break、continue关键字在循环语句中的应用

在循环结构中,有时我们并不希望按照正常的循环条件结束循环,而是希望在某些条件下跳过循环甚至结束循环,这个时候就需要break和continue这两个关键字的帮忙了。

continue关键字的作用是告知Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。

我们看一个简单的例子,循环0-7这8个数,输出其中除6以外的7个数。以下代码中,当number为6时,我们使用了continue语句,导致不执行后面的print()语句,而进行下一个循环number为7时的循环,这样就实现了不输出6的需求。

continue用法

break关键字的作用是直接终止循环,即可以跳出for-in循环或while循环的循环体。注意,如果我们使用break终止循环,那么对应的for-in循环或while循环后面的else块将不再执行。

在上一节的猜数字游戏中,我们只允许输入一次,现在我们要求每个用户可以有5次猜数字的机会,每次都会提示猜的数字是大了还是小了,如果用户猜对或猜满5次则结束游戏。以下代码中,当用户猜对数字时,我们使用break,这样即使count<5的条件依然满足,循环也会被直接终止。

break用法

总结

以上内容介绍了循环结构的概念以及Python中循环结构for-in语句和while语句的使用方法。循环结构与分支结构一样,虽然基础但很重要,二者会伴随我们整个编程生涯。上述的示例代码中九九乘法表和猜数字游戏是两个不错的练手代码,可以自己动手写一下,加深对循环结构的理解和对for-in语句、while语句的熟练。感谢大家的关注,欢迎一起学习交流~

100内奇数之和流程图_Python进阶记录之基础篇(四)相关推荐

  1. python多线程并发_Python进阶记录之基础篇(二十四)

    回顾 在Python进阶记录之基础篇(二十三)中,我们介绍了进程的基本概念以及Python中多进程的基本使用方法.其中,需要重点掌握多进程的创建方法.进程池和进程间的通信.今天我们讲一下Python中 ...

  2. python进阶记录之基础篇二十六_Python进阶记录之基础篇(十六)

    回顾 在Python进阶记录之基础篇(十五)中,我们介绍了面向对象的基本概念以及Python中类和对象的基础知识,需要重点掌握类的创建和对象的使用.今天我们继续讲一下Python中面向对象的相关知识点 ...

  3. 100内奇数之和流程图_JavaScript基础教程(六)流程控制之循环语句

    JavaScript入门教程之循环语句 循环语句从字面意思理解就是重复执行,能够让计算机按照程序员要求重复执行某种操作的能力是所有程序设计语言所必须具备的基本能力.在JavaScript程序设计语言中 ...

  4. 100内奇数之和流程图_IATF 16949体系资料之过程流程图,收藏备用!

    如果你不需要一键查遍国家.地方.行业标准,也不需要一个更好的工作机会,那拜托千万不要点击这个链接!!!下面为大家整理和展示了过程逻辑图和18个典型的一级过程流程图,包括流程的输入.输出,过程活动及操作 ...

  5. 100内奇数之和流程图_互联网人工智能编程语言Python之while循环详解

    IT技术研习社,专注互联网技术研究与分享,喜欢的朋友可以点击[关注]:把经验传递给有梦想的人: 循环控制 在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句.一组被重复执行 ...

  6. 100内奇数之和流程图_2019版路基工程清包工参考价+19种路基常用施工流程图

    路基工程 " 01 拆除工程 拆除浆砌石:18~25元/m³ 机械拆除素砼:40~60元/m³ 爆破拆除素砼:40~60元/m³ 机械拆除钢筋砼:80~90元/m³ 机械挖除水泥砼路面:20 ...

  7. 100内奇数之和流程图_机器视觉基础之工业相机50个常用术语

    1.像素大小(Pixel Size): 指个别感应像素的实际尺寸大小,不论是长或宽,都以μm(Micrometer)为计量单位.像素愈大,则所需曝光成像时间较短,但却会牺牲些许空间分辨率.反之,像素愈 ...

  8. 100内奇数之和流程图_七月刷题挑战,100%获奖的法考速记本活动来啦!

    时间正式进入了七月,晓伙伴们的复习进度到哪啦? 是还在一轮行政法苦苦挣扎,还是一轮完美收官二轮尚未开始,亦或是二轮推背课信手拈来呢?在认真赶进度的同时,大家有没有及时回顾之前学习的知识呢 一个完美的复 ...

  9. 100内奇数之和流程图_数字物理猎奇研究|纯奇数数集中的加法,法则中的“n”的含义...

    自然数集包含奇偶互补子集:奇--偶. 自然数加法法则是: 奇+1=偶 偶+1=奇 奇+奇=偶 奇+偶=奇 奇+奇+奇=奇 在大于等于3的纯奇数数集内部,却包含着说怪不怪的加法法则: 奇+奇=奇+1 奇 ...

最新文章

  1. Acwing第 13 场周赛【未完结】
  2. 【项目管理】ITTO-采购管理
  3. 最近一次.Dragon4444勒索病毒的成功解密过程
  4. php伪静态的实现方式
  5. Microsoft Access、MySQL 以及 SQL Server 所使用的数据类型和范围。
  6. python列表有固定大小吗,使用python自己写了一个固定长度的list
  7. Qt工作笔记-Qt生成dll或so,并且调用(含Liunx端与Windows端)
  8. Poj_1325 Machine Schedule -最大匹配性质题目
  9. 特斯拉=车祸多?马斯克回击
  10. 第2章:Maven的安装/2.1 Window下的安装
  11. 加个ing是什么意思_用quot;ing形式quot; 统称 动名词 和 现在分词 可以吗
  12. [转载] Pandas:DataFrame对象的基础操作
  13. KDD 2016 | node2vec:Scalable Feature Learning for Networks
  14. 2018版USBASP烧录器改通用版教程
  15. wifi信号正常,电脑插入网线之后,却显示“未识别网络”,
  16. python中output使用_如何在Python中使用subprocess.check_output()?
  17. LDO芯片CMO3236 系列低功耗
  18. Web App与Native App
  19. 两个ListMap中同下标的map去重合并
  20. 数据管理基础-ch08-10

热门文章

  1. 【NOI2013】向量内积
  2. [转]使用fragments
  3. 可变参数__VA_ARGS__使用和va_list使用小结
  4. 第五章-分布式并行编程框架MapReduce
  5. 文本查重:difflib.SequenceMatcher
  6. 初等数论--原根--怎么判断a是不是模m的原根
  7. 使用 cmd、PowerShell 等用命令行的方式创建文件及文件夹
  8. 【Flask】flask入门以及第一个flask项目的创建
  9. 14-Providing protection for complex software
  10. C/C++编写的反向SHELL