python怎么用for循环语句?Python循环语句代码详解
python怎么用for循环语句?Python循环语句代码详解【例3-6.py】下面【例3-6】中的这段代码演示了else子句在while循环中的使用。当变量x的值大于0时,执行循环,否则输出变量x的值。注意:while循环中的else子句也属于循环的一部分,最后一次循环结束后将执行else子句。下面这段代码演示了while循环的使用。程序首先要求输入5个数字,然后依次输出这5个数字。1 #while循环 2 numbers=input("输入几个数字,用逗号分隔:").split(" ") 3 print(numbers) 4 x=0 5 whilex<len(numbers):#当x的值小于输入字数的个数的时候,执行循环内容 6 print(numbers[x]) 7 x =1#一个循环结束时给x加1【代码说明】
导读:循环语句是指重复执行同一段代码块,通常用于遍历集合或者累加计算。Python中的循环语句有while语句、for语句。
作者:黄传禄 张克强 赵越
来源:华章科技
循环语句是程序设计中常用的语句之一。任何编程语言都有while循环,Python也不例外。while循环的格式如下所示。
1 while(表达式):
2 …
3 else:
4 …
while循环的执行过程:当循环表达式为真时,依次执行while中的语句。直到循环表达式的值为False,程序的流程转到else语句。其中else子句可以省略,表达式两侧的括号也可以省略。
注意:while循环中的else子句也属于循环的一部分,最后一次循环结束后将执行else子句。
下面这段代码演示了while循环的使用。程序首先要求输入5个数字,然后依次输出这5个数字。
1 #while循环
2 numbers=input("输入几个数字,用逗号分隔:").split(" ")
3 print(numbers)
4 x=0
5 whilex<len(numbers):#当x的值小于输入字数的个数的时候,执行循环内容
6 print(numbers[x])
7 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】
1 #带else子句的while循环
2 x=float(input("输入x的值:"))#接收用户输入的数字并转换为float类型
3 i=0
4 while(x!=0):#Python3中的不等于不再使用<>,一律使用!=
5 if(x>0):
6 x-=1#如果x大于0,则减1
7 else:
8 x =1#如果x小于0,则加1
9 i=i 1
10 print("第%d次循环:%f"%(i x))
11 else:
12 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。
在使用循环语句时,应注意循环表达式的布尔值,避免出现死循环。死循环是指循环条件永远为真的循环。例如:
1 i=1
2 whilei>0:#i永远大于0
3 i=i 1
4 print(i)
这段代码就是一个死循环,变量i的值永远都大于0。
02 for循环for循环用于遍历一个集合,依次访问集合中的每个项目。for循环的格式如下所示。
1 for变量in集合:
2 …
3 else:
4 …
for…in…循环的执行过程:每次循环从集合中取出一个值,并把该值赋值给变量。集合可以是元组、列表、字典等数据结构。其中else子句可以省略。
注意:for循环中的else子句也属于循环的一部分,最后一次循环结束后将执行else子句。
for…in…循环通常与range()函数一起使用,range()返回一个列表,for…in…遍历列表中的元素。range()函数的声明如下:
classrange(object)
range(stop)->rangeobject
range(start stop[ step])->rangeobject
【代码说明】
range()返回一个range对象,列表的元素值由3个参数决定:参数start表示列表开始的值,默认值为0;参数stop表示列表结束的值,该参数不可缺少;参数setp表示步长,即每次递增或递减的值,默认值为1。
下面【例3-7】中的这段代码遍历range()生成的列表,过滤出正数、负数和0。
【例3-7.py】
1 #forin语句
2 forxinrange(-1 2):
3 ifx>0:
4 print("正数:" x)
5 elifx==0:
6 print("零:" x)
7 else:
8 print("负数:" x)
9 else:
10print("循环结束")
【代码说明】
- 第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循环。例如:
1 x=0
2 whilex<5:
3 print(x)
4 x=x 2
while循环的写法比较琐碎,需要比较判断。因此,对此也可以使用for循环,借助range()函数来实现。例如:
1 forxinrange(0 5 2):
2 print(x)
【代码说明】
输出的数字在[0 5)这个区间,不包括5。每次循环结束,x的值加2。输出结果:
0
2
4
这里只用了两行代码就实现了传统for循环。如果要用条件表达式作为循环的条件,可以构造range()函数来实现。
03 break和continue语句break语句可以使程序跳出循环语句,从而执行循环体之外的程序,即break语句可以提前结束循环。例如,模拟switch分支结构使用了break语句。
1 operator=" "
2 x=1
3 y=2
4 forcaseinswitch(operator):#switch只能用于for...in...循环中
5 ifcase(' '):
6 print(x y)
7 break
8 ifcase('-'):
9 print(x-y)
10 break
11 ifcase('*'):
12 print(x*y)
13 break
14 ifcase('/'):
15 print(x/y)
16 break
17 ifcase():#默认分支
18 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】
1 x=int(input("输入x的值:"))
2 y=0
3 foryinrange(0 100):
4 ifx==y:
5 print("找到数字:" x)
6 break
7 else:
8 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'outsideloop
continue语句也是用来跳出循环的语句,但是与break不同的是,使用continue语句不会跳出整个循环体,只是跳出当前的循环,然后继续执行后面的循环。
1 x=0
2 foriin[1 2 3 4 5]:
3 ifx==i:
4 continue
5 x =i
6 print("x的值为" x)
【代码说明】
- 第1行代码将x赋值为0。
- 第2行代码使用for...in...语句遍历列表[1 2 3 4 5]。
- 第3行代码将x与i进行比较,如果x与值i相等,则执行第4行的continue语句,停止当前循环,即不再执行第5行代码,继续执行下一个循环。
- 第6行代码打印出最终的结果,输出为12。
关于作者:黄传禄,高级讲师、管理软件开发工程师、数据库库系统工程师、信息系统管理工程师。有10多年的一线教学经验和高端培训经验,出版多部技术专著,获得多个软件著作权。
本文摘编自《零基础学Python》(第2版),经出版方授权发布。
延伸阅读《零基础学Python》(第2版)
推荐语:为了能够使广大读者既能够掌握Python语言的基础知识,又能够将Python语言应用于某个特定的领域(如Web开发),本书介绍了与Python相关的方方面面,每个章节都提供了详尽的例子,结合实例讲解各个知识点。涉及的程序代码都给出了详细的注释,有助于读者轻松领会程序开发的精髓,快速提高开发技能。