1 while循环

循环语句是程序设计中常用的语句之一。任何编程语言都有while循环,Python也不例外。while循环的格式如下所示。

while(表达式):

else:

while循环的执行过程:当循环表达式为真时,依次执行while中的语句。直到循环表达式的值为False,程序的流程转到else语句。其中else子句可以省略,表达式两侧的括号也可以省略。

注意:while循环中的else子句也属于循环的一部分,最后一次循环结束后将执行else子句。

下面这段代码演示了while循环的使用。程序首先要求输入5个数字,然后依次输出这5个数字。

# while循环

numbers = input("输入几个数字,用逗号分隔:").split(",")

print(numbers)

x = 0

while x

print (numbers[x])

x += 1                  # 一个循环结束时给x加1

【代码说明】

第2行代码使用input()捕获输入。按照提示输入5个数字,并用逗号分隔。input()根据输入的逗号,生成一个列表。

第3行代码输出列表numbers的内容。

第4行代码定义变量x的值为0。

第5行代码循环列表numbers。

第6行代码输出列表中第x+1个数字的值。

第7行代码,每次循环使变量x增1。

下面【例3-6】中的这段代码演示了else子句在while循环中的使用。当变量x的值大于0时,执行循环,否则输出变量x的值。

【例3-6.py】

# 带else子句的while循环

x = float(input("输入x的值:"))   # 接收用户输入的数字并转换为float类型

i = 0

while(x  != 0):                  # Python 3中的不等于不再使用<>,一律使用!=

if(x > 0):

x -= 1                  # 如果x大于0,则减1

else:

x += 1                 # 如果x小于0,则加1

ii = i + 1

print( "第%d次循环:%f" %(i, x))

else:

print ("x等于0:", x)

【代码说明】

第2行代码输入变量x的值。

第3行代码定义变量i,变量i表示循环次数。

第4行代码,给出循环条件x != 0。如果x不等于0,则执行第5行代码;否则,执行else子句的内容。

第5行代码,判断变量x的值是否大于0。

第6行代码,如果x的值大于0,则每次循环都减1。

第7行代码,判断变量x的值是否小于0。

第8行代码,如果x的值小于0,则每次循环都加1。

第9行代码,每次循环使变量i的值加1。

第11行代码,循环结束,else子句输出变量x的值。输出结果(假设输入数字为0):x等于0:0。

在使用循环语句时,应注意循环表达式的布尔值,避免出现死循环。死循环是指循环条件永远为真的循环。例如:

i = 1

while i > 0:     # i永远大于0

ii = i + 1

print(i)

这段代码就是一个死循环,变量i的值永远都大于0。

2. for循环

for循环用于遍历一个集合,依次访问集合中的每个项目。for循环的格式如下所示。

for 变量 in 集合:

else:

for…in…循环的执行过程:每次循环从集合中取出一个值,并把该值赋值给变量。集合可以是元组、列表、字典等数据结构。其中else子句可以省略。

注意:for循环中的else子句也属于循环的一部分,最后一次循环结束后将执行else子句。

for…in…循环通常与range()函数一起使用,range()返回一个列表,for…in…遍历列表中的元素。range()函数的声明如下:

class range(object)

range(stop) -> range object

range(start, stop[, step]) -> range object

【代码说明】

range()返回一个range对象,列表的元素值由3个参数决定:参数start表示列表开始的值,默认值为0;参数stop表示列表结束的值,该参数不可缺少;参数setp表示步长,即每次递增或递减的值,默认值为1。

下面【例3-7】中的这段代码遍历range()生成的列表,过滤出正数、负数和0。

【例3-7.py】

# for in语句

for x in range(-1, 2):

if x > 0:

print ("正数:",x)

elif x == 0 :

print ("零:",x)

else:

print ("负数:",x)

else:

print ("循环结束")

【代码说明】

第2行代码遍历range(-1,2)生成的列表。range(-1,2)返回的3个数字分别为-1、0、1。每次循环结束,变量x的值依次为-1、0、1。

第3行代码判断变量x的值是否大于0。

第4行代码输出正数的值。输出结果为“正数:1”。

第5行代码判断变量x的值是否等于0。

第6行代码,输出结果为“零:0”。

第8行代码,输出负数的值。输出结果为“负数:-1”。

第9行代码并没有结束for循环,else子句执行后循环才结束。输出结果为“负数:-1”。

在C、Java语言中,支持如下结构的for语句。

for(表达式1; 表达式2; 表达式3)

语句块

Python不支持这样的for循环。如果需要编写类似功能的循环,可以使用while循环。例如:

x = 0

while x

print(x)

xx = x + 2

while循环的写法比较琐碎,需要比较判断。因此,对此也可以使用for循环,借助range()函数来实现。例如:

for x in range(0, 5, 2):

print (x)

【代码说明】

输出的数字在[0,5)这个区间,不包括5。每次循环结束,x的值加2。输出结果:

0

2

4

这里只用了两行代码就实现了传统for循环。如果要用条件表达式作为循环的条件,可以构造range()函数来实现。

3. break和continue语句

break语句可以使程序跳出循环语句,从而执行循环体之外的程序,即break语句可以提前结束循环。例如,模拟switch分支结构使用了break语句。

operator = "+"

x = 1

y = 2

for case in switch(operator):   # switch只能用于for... in...循环中

if case('+'):

print (x + y)

break

if case('-'):

print (x - y)

break

if case('*'):

print (x * y)

break

if case('/'):

print (x / y)

break

if case():                      # 默认分支

print ("")

【代码说明】

第7行代码中使用了break。当变量operator的值为“+”,则执行表达式x + y,然后中断switch分支结构,后面的case分支都不会执行。此时输出结果为3。后面的break作用相同。当匹配到某个case后,程序将跳出switch。

如果第一个case不使用break子句,程序将输出两个值,分别是3和-1。因为执行完输出表达式x + y后,分支结构并没有中断,程序将流转到下面一个case。然后继续计算表达式x – y的值,遇到后面的break语句才退出分支结构。break语句在循环结构中也有类似的作用。【例3-8】中的这段代码将从0到99中查找用户输入的值。

【例3-8.py】

x = int(input("输入x的值:"))

y = 0

for y in range(0, 100):

if x == y:

print ("找到数字:", x)

break

else:

print("没有找到")

【代码说明】

第1行代码捕获用户输入的值,并把该值转换为int类型,赋值给变量x。

第2行代码定义一个变量y,变量y用于暂存需要遍历的列表的值。

第3行代码使用for…in…循环遍历range(0, 100)返回的列表。range(0, 100)的返回值为0、1、2、…、99。

第4行代码判断输入的值是否等于列表中的值。如果条件成立,输出查找到的数字,并立即退出循环。循环结束,后面的else子句将不会被执行。

第7行代码,当没有找到输入的值时,else子句后面的代码将被执行。

注意:break语句不能运行在循环体或分支语句之外,否则,Python解释器将提示如下错误。

SyntaxError: 'break' outside loop

continue语句也是用来跳出循环的语句,但是与break不同的是,使用continue语句不会跳出整个循环体,只是跳出当前的循环,然后继续执行后面的循环。

x = 0

for i in [1,2,3,4,5]:

if x == i:

continue

x  += i

print("x的值为", x)

【代码说明】

第1行代码将x赋值为0。

第2行代码使用for...in...语句遍历列表[1,2,3,4,5]。

第3行代码将x与i进行比较,如果x与值i相等,则执行第4行的continue语句,停止当前循环,即不再执行第5行代码,继续执行下一个循环。

第6行代码打印出最终的结果,输出为12。

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理

想要获取更多Python学习资料可以加QQ:2955637827私聊或加Q群630390733大家一起来学习讨论吧!

python循环体结束标志_Python循环语句代码详解:while、for、break相关推荐

  1. python循环一段代码_Python循环语句代码详解:while、for、break

    导读:循环语句是指重复执行同一段代码块,通常用于遍历集合或者累加计算.Python中的循环语句有while语句.for语句. 01 while循环 循环语句是程序设计中常用的语句之一.任何编程语言都有 ...

  2. python代码大全表解释-python操作列表的函数使用代码详解

    python的列表很重要,学习到后面你会发现使用的地方真的太多了.最近在写一些小项目时经常用到列表,有时其中的方法还会忘哎! 所以为了复习写下了这篇博客,大家也可以来学习一下,应该比较全面和详细了 列 ...

  3. python分支语句_Python中分支语句与循环语句实例详解

    前言 本篇博文介绍一下Python中的if条件语句.while循环语句.for in循环语句以及break和continue控制关键字. 分支的基本语法 if 条件表达式: 语句1 语句2 语句3 . ...

  4. python循环体结束标志_python判断循环体结束的方法

    python如何判断循环体结束? 相关推荐:<python视频> Python break语句,就像在C语言中,打破了最小封闭for或while循环. break语句用来终止循环语句,即循 ...

  5. python中if else语句用法_Python If-else语句用法详解

    本文概述 决策是几乎所有编程语言中最重要的方面.顾名思义, 决策制定使我们可以为特定决策运行特定代码块.在此, 将根据特定条件的有效性做出决定.条件检查是决策的基础. 在python中, 决策由以下语 ...

  6. C语言——循环语句(详解)

    目录 前言: 1.循环语句是什么? 2.while循环语句: 2.1.while循环的语法以及使用 2.2.while循环中的break语句 2.3.while循环中的continue语句 3.for ...

  7. 简述python文件操作_Python 文件操作的详解及实例

    Python 文件操作的详解及实例 一.文件操作 1.对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下: 昨夜寒蛩不住鸣. 惊回千里梦,已三更. ...

  8. python输出命令_Python输出各行命令详解

    创建main.py文件并粘贴下面代码 点击右键运行Debug 'main'后,下方的Debug窗口会出现ImportError: No module named 'bottle'这样的提示,提示导入b ...

  9. python 相对导入_Python相对导入机制详解

    Google FEB 26TH, 2015 Python相对导入机制详解 这个答案能解释大多关于 relative import,即相对导入的疑惑,讲解十分详尽清晰,算是 SO 上被低估的一个答案. ...

最新文章

  1. 魔术方法php重定向,PHP魔术方法__get()
  2. linux2.6内核compat_ioctl函数
  3. LeetCode Weekly Contest 142
  4. mybatis的动态sql学习注意点!!!
  5. Linux 设置定时任务 清空日志
  6. nagios整合ganglia实现hadoop、Hbase监控及手机短信报警
  7. linux目录创立文件硬链接,在Linux中创建文件目录软链接、硬链接的方法
  8. Linux基础----gcc工具的使用
  9. 【分享】 图片轮换--函数化继承
  10. 宝峰BF-888S对讲机写频!Android下的对讲机写频工具!
  11. 阿里巴巴如何面试?网友分享出你不知道的真实面试流程(转发给有需要的人)
  12. 渗透测试技术----服务扫描(一)--Banner、服务版本扫描、操作系统识别
  13. 微信公众号之渲染静态模板
  14. upload.aspx
  15. 黄金etf持仓量如何算
  16. Python:NumPy-随机抽样
  17. 帝国php调用文章列表,帝国CMS模板中:使用php调用最新文章的代码(非灵动和万能标签)...
  18. 【C语言程序设计】实验 11
  19. 分类决策树考虑了经验风险吗_数据挖掘导论 第4章 分类:基本概念、决策树与模型评估...
  20. 微电子器件实验 03 - | 晶体管开关时间的测量

热门文章

  1. nmap 扫描数据分析
  2. 基于SOA的区域卫生信息平台案例分析(转)
  3. idea 撤销和反撤销快捷键
  4. 笔记本电脑读取网卡失败
  5. 转载 |「智链ChainNova」要为企业提供一站式服务及行业解决方案
  6. Oracle rownum、rowid 详解
  7. 调用百度API实现驾驶行为分析
  8. groupBy()分组
  9. matlab 职坐标,Axure入门与基础常用函数解析整理
  10. 安徽计算机专业专科排名,2019安徽省十大专科学校排名 王牌高职院校名单