.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 < len(numbers): # 当x的值小于输入字数的个数的时候,执行循环内容
- print (numbers[x])
- x += 1 # 一个循环结束时给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)
【代码说明】
在使用循环语句时,应注意循环表达式的布尔值,避免出现死循环。死循环是指循环条件永远为真的循环。例如:
- 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 ("循环结束")
【代码说明】
在C、Java语言中,支持如下结构的for语句。
- for(表达式1; 表达式2; 表达式3)
- 语句块
Python不支持这样的for循环。如果需要编写类似功能的循环,可以使用while循环。例如:
- x = 0
- while x < 5:
- 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("没有找到")
【代码说明】
注意: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)
【代码说明】
新闻标题:Python循环语句代码详解:while、for、break
当前路径:http://www.shufengxianlan.com/qtweb/news13/344163.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联