第6章、循环语句

在本书上一章的内容中,我们学习了实现条件判断功能的条件语句,让程序的执行顺序发生了变化。为了满足循环和跳转等功能,本章将详细讲解Python语言中循环语句的知识,主要包括for循环语句、while循环和循环控制语句。在讲解过程中通过具体实例的实现过程讲解了各个知识点的具体用法,为读者步入本书后面知识的学习打下基础。

6.1、使用for循环语句

在Python语言中,循环语句是一种十分重要的程序结构。其特点是,在给定条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。循环结构还如大家在操场跑步,例如每天跑8000m,你就得在操场400m跑道上跑20圈,这20圈的路线是相同的、重复的,这20圈的跑步动作就是一个循环。在Python程序中主要有3种循环语句,分别是for循环语句、while循环语句和循环控制语句。下面将首先讲解for循环语句的知识。

6.1.1、基本的for循环语句

在Python语言中,for语句是Python语言中构造循环结构程序的语句之一。在Python程序中,绝大多数的循环结构都是用for语句来完成的。和Java、C语言等其他语言相比,Python语言中的for语句有很大的不同,其他高级语言中的for语句需要用循环控制变量来控制循环。而Python语言中的for循环语句通过循环遍历某一序列对象(例如本书后面将要讲解的元组、列表、字典等)来构建循环,循环结束的条件就是对象遍历完成。

在Python程序中,使用for循环语句的基本语法格式如下所示。

for iterating_var in sequence:

statements

在上述格式中,各个参数的具体说明如下所示。

"iterating_var:表示循环变量。

"sequence:表示遍历对象,通常是元组、列表和字典等。

"statements:表示执行语句。

上述for循环语句的执行流程如图6-1所示。

上述格式的含义是遍历for语句中的遍历对象,每经过一次循环,循环变量就会得到遍历对象中的一个值,可以在循环体中处理它。在一般情况下,当遍历对象中的值全部用完时,就会自动退出循环。

下面的实例演示了使用 for 循环语句的基本过程。

实例6-1 使用基本的for循环语句

源码路径 daima\6\6-1

实例文件for.py的具体实现代码如下所示。

for letter in 'Python':   #第一个实例,定义一个字符

print ('当前字母 :', letter)

#循环输出字符串"Python"中的各个字母

fruits = ['banana', 'apple', 'mango']

#定义一个列表

for fruit in fruits:

print ('当前单词 :', fruit)

#循环输出列表"fruits"中的3个值

print ("Good bye!")

执行效果如图6-2所示。

6.1.2、通过序列索引迭代

在Python语言中,还可以通过序列索引迭代的方式实现循环功能。在具体实现时,可以借助于内置函数range()实现。因为在Python语言的for语句中,对象集合可以是列表、字典以及元组等,所以可以通过函数range()产生一个整数列表,这样可以完成计数循环功能。

在Python语言中,函数range()的语法格式如下所示。

range( [start,] stop[, step])

各个参数的具体含义如下所示。

"start:可选参数,起始数,默认值为0。

"stop:终止数,如果range只有一个参数x,那么range生产一个从0至x?l的整数列表。

"step:可选参数,表示步长,即每次循环序列增长值。

注意:产生的整数序列的最大值为stop?1。

下面的实例通过序列索引迭代的方式循环输出了列表中的元素。

实例6-2 循环输出列表中的元素

源码路径 daima\6\6-2

实例文件diedai.py的具体实现代码如下所示。

fruits = ['banana', 'apple', 'mango']

#定义一个数组

for index in range(len(fruits)):

#使用函数range()遍历数组

print ('当前水果 :', fruits[index])

#输出遍历数组后的结果

print ("Good bye!")

执行后的效果如图6-3所示。

6.1.3、使用for… else循环语句

在Python程序中,for…else表示的意思是:for中的语句和普通的语句没有区别,else中的语句会在循环正常执行完(即for不是通过break跳出而中断的)的情况下执行。使用for…else循环语句的语法格式如下所示。

for iterating_var in sequence:

statements1

else:

statements2

在上述格式中,各个参数的具体说明如下所示。

"iterating_var:表示循环变量。

"sequence:表示遍历对象,通常是元组、列表和字典等。

"statements1:表示for语句中的循环体,它的执行次数就是遍历对象中值的数量。

"statements2:else语句中的statements2,只有在循环正常退出(遍历完所有遍历对象中的值)时才执行。

下面的实例演示了使用for… else循环语句的执行过程。

实例6-3 判断是否是质数

源码路径 daima\6\6-3

实例文件else.py的具体实现代码如下所示。

for num in range(10,20):

#循环迭代10 到 20 之间的数字

for i in range(2,num): #根据因子迭代

if num%i == 0:     #确定第一个因子

j=num/I        #计算第二个因子

print ('%d 等于 %d * %d' % (num,i,j))

break          # 跳出当前循环

else:

# 如果上面的条件不成立,则执行循环中的else部分

print (num, '是一个质数') #输出这是一个质数

执行后的效果如图6-4所示。

6.1.4、嵌套for循环语句

当在Python程序中使用for循环语句时,可以是嵌套的。也就是说,可以在一个for语句中使用另外一个for语句。例如在前面的实例6-3中使用了嵌套循环,即在for循环中又使用了一个for循环。使用for循环语句的形式如下所示。

for iterating_var in sequence:

for iterating_var in sequence:

statements

statements

上述各参数的含义与前面非嵌套格式的参数一致。

下面实例使用嵌套for循环语句获取两个整数之间的所有素数。

实例6-4 获取两个整数之间的所有素数

源码路径 daima\6\6-4

实例文件qiantao.py的具体实现代码如下所示。

#提示输入一个整数

x = (int(input("请输入一个整数值作为开始:")),int(input

("请输入一个整数值作为结尾:")))

x1 = min(x)          #获取输入的第1个整数

x2 = max(x)          #获取输入的第2个整数

for n in range(x1,x2+1):

#使用外循环语句生成要判断素数的序列

for i in range(2,n-1):

#使用内循环生成测试的因子

if n % i == 0:

#如果生成测试的因子能够整除,则不是素数

break

else:          #上述条件不成立,则说明是素数

print("你输入的",n,"是素数。")

在上述代码中,首先使用输入函数获取用户指定的序列开始和结束,然后使用for语句构建了两层嵌套的循环语句用来获取素数并输出结果。使用外循环语句生成要判断素数的序列,使用内层循环生成测试的因子。并且使用else子句的缩进来表示它属于内嵌的for循环语句,如果多缩进一个单位,则表示属于其中的if语句;如果少缩进一个单位,则表示属于外层的for循环语句。因此,Python中的缩进是整个程序的重要构成部分。执行后将提示用户输入两个整数作为范围,例如分别输入"100"和"105"后的执行效果如图6-5所示。

注意:

C/C++/Java/C#程序员需要注意如下两点。

"Python语言的for循环完全不同于C/C++的for循环。C#程序员会注意到,在Python中for循环类似于foreach循环。Java程序员会注意到,同样类似于在Java 1.5中的to for (int i : IntArray)。

"在C/C++中,如果你想写for (int i = 0; i<5; i++),那么在Python中你只要写 for i in range(0,5)。正如你可以看到的,在Python中for循环更简单、更富有表现力且不易出错。

21/212>

python编程循环语句_循环语句—Python编程从入门到精通(5)相关推荐

  1. 编程大讲坛、坛坛是佳酿--编程大讲坛:C#核心开发技术从入门到精通

    [书名]编程大讲坛:C#核心开发技术从入门到精通 [作者]管西京 [ISBN] 978-7-121-09043-1 [出版社]电子工业出版社 [出版日期]2009年9月 [定  价]79.80元(含光 ...

  2. c语言编程从入门到精通+pdf下载,编程大讲坛 C语言核心开发技术从入门到精通 陈强 pdf扫描版...

    编程大讲坛 C语言核心开发技术从入门到精通由浅入深地讲解了c语言开发技术,以遵循科学合理的学习计划为主线,通过典型实例来讲解其具体使用.全书内容分为20课,其中第1-8课依次讲解了c语言概述.c语言算 ...

  3. python while 循环 全局变量_黄老师Python学院编程原来如此简单 第一讲

    作者: 黄老师  发布时间: 05/28 2020 15:00 <两行代码爬取股票的全部信息> 先看效果: 下图展示的是黄老师用python爬取的英维克(代码是002837)的日k数据,是 ...

  4. python 循环赋值_计算机二级Python语言程序设计 第2章Python语言基本语法元素

    第二章学习知识导图 本章概述:本章目的是了解基础的Python相关知识 考点主要是: 1) 程序的基本语法元素:程序的格式框架.缩进.注释.变量.命名.保留字.数据类型.赋值语句.引用 2) 基本输入 ...

  5. python中for循环加速_如何让Python代码加速运行?

    Python 是一种脚本语言,相比 C/C++ 这样的编译语言,在效率和性能方面存在一些不足.但是,有很多时候,Python 的效率并没有想象中的那么夸张.本文对一些 Python 代码加速运行的技巧 ...

  6. for循环递减_判断语句_循环语句

    创建时间:20200418 修改时间:20200629 1. if 判断语句 1.1 if...elif...else...语句格式 Python 中 if 语句的一般形式如下所示: if 如果 &q ...

  7. python for循环结构_循环结构-for循环

    我们在上一节提到过计数控制的循环是根据绝对值的次数来进行循环,我们通过for语句来实现计数循环,那么在for循环中一定存在控制次数的对象. 1. for循环 for循环是通过次数的大小来进行循环,通常 ...

  8. python123循环结构_来学Python啦,大话循环结构~

    点击上方蓝字关注"程序员Bob" 每日一句,送给最珍贵的你: 为学日益,为道日损,损之又损,以至于无为,无为而无不为. 最近想研究爬虫了,准备拾起以前Python,继续学! 上次P ...

  9. [转载] python中的且语句_简单探讨python中的语句和语法

    参考链接: 在Python中解包:并行分配之外 python程序结构 python"一切皆对象",这是接触python听到最多的总结了.在python中最基层的单位应该就是对象了, ...

最新文章

  1. 二.MongoDB特点
  2. php(wamp安装问题)
  3. Oracle创建dblink和同义词小记
  4. VTK:线性挤压用法实战
  5. linux下unix timestamp 与 可视化时间/常规时间进行转换
  6. 不用正则表达式,用javascript从零写一个模板引擎(一)
  7. World Wind Java开发之二 使用Winbuilders设计图形用户界面(转)
  8. java开源springboot项目_使用Spring Boot的10多个免费开源项目
  9. 【报告分享】2021-2022年中国人工智能创投数据报告.pdf(附下载链接)
  10. 算法笔记_面试题_4.树的遍历(前序/中序/后续遍历)
  11. 扇贝有道180916每日一句
  12. linux制作虚拟机镜像,为OpenStack制作CoreOS虚拟机镜像(基于CoreOS官方提供镜像)
  13. 时域、频域与时域分析、频域分析简单理解
  14. 第五届“强网”拟态防御国际精英挑战赛——预选赛入围名单公布!
  15. 思科警告:旗下某些产品可能存在无法修补的WannaCrypt漏洞
  16. AtCoder Beginner Contest 285解题报告
  17. uiautomator2+ tesseract 智能识别文字实现手游辅助外挂,打怪刷装备快人一步
  18. 网页无法显示PNG图片的解决方法
  19. [GoFrame学习] 报错 implement not found for interface IMenu, forgot register?
  20. Linux--解决上cf慢的问题(通过修改hosts)

热门文章

  1. Mac Nginx 配置 Tomcat 配置 jdk环境变量 Nginx部署服务遇到的坑(2)
  2. 手动创建线程更好哦_如何通过创建更好的工作流程找到下一个大想法
  3. 编写react组件_如何编写第一个React.js组件
  4. openstack网络指南_性格内向的战术网络指南
  5. java解析消息头代码_javaWeb项目-文件下载的消息头和编码问题
  6. jupyter notebook 设置默认目录
  7. Python 创建用户界面之 PyQt5 的使用
  8. TCP中recv解阻塞的两种方式
  9. NLP 《马尔科夫链》
  10. NLP 《分词方法》