Python循环语句代码详解:while、for、break
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
carpark翻译while x <len(numbers):# 当x的值⼩于输⼊字数的个数的时候,执⾏循环内容
print(numbers[x])
x +=1# ⼀个循环结束时给x加1
【代码说明】
第2⾏代码使⽤input()捕获输⼊。按照提⽰输⼊5个数字,并⽤逗号分隔。input()根据输⼊的逗号,⽣成⼀个列表。
第3⾏代码输出列表numbers的内容。
python基础代码语句第4⾏代码定义变量x的值为0。
第5⾏代码循环列表numbers。
第6⾏代码输出列表中第x+1个数字的值。
第7⾏代码,每次循环使变量x增1。
下⾯【例3-6】中的这段代码演⽰了else⼦句在while循环中的使⽤。当变量x的值⼤于0时,执⾏循环,否则输出变量x的值。
【例3-6.py】
'''
遇到问题没⼈解答?⼩编创建了⼀个Python学习交流QQ:778463939
寻有志同道合的⼩伙伴,互帮互助,⾥还有不错的视频学习教程和PDF电⼦书!
'''
# 带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。日本unicode
在使⽤循环语句时,应注意循环表达式的布尔值,避免出现死循环。死循环是指循环条件永远为真的循环。例如:
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()函数的声明如下:
'''
遇到问题没⼈解答?⼩编创建了⼀个Python学习交流QQ:778463939
寻有志同道合的⼩伙伴,互帮互助,⾥还有不错的视频学习教程和PDF电⼦书!
'''
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 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循环。例如:
'''
遇到问题没⼈解答?⼩编创建了⼀个Python学习交流QQ:778463939
寻有志同道合的⼩伙伴,互帮互助,⾥还有不错的视频学习教程和PDF电⼦书!
'''
x =0
while x <5:
javabigdecimal保留两位小数print(x)
xx = x +2
while循环的写法⽐较琐碎,需要⽐较判断。因此,对此也可以使⽤for循环,借助range()函数来实现。例如:
for x in range(0,5,2):
print(x)
【代码说明】
输出的数字在[0,5)这个区间,不包括5。每次循环结束,x的值加2。输出结果:
2
4
这⾥只⽤了两⾏代码就实现了传统for循环。如果要⽤条件表达式作为循环的条件,可以构造range()函数来实现。
3. break和continue语句
break语句可以使程序跳出循环语句,从⽽执⾏循环体之外的程序,即break语句可以提前结束循环。
例如,模拟switch分⽀结构使⽤了break语句。
x =1
y =2
for case in switch(operator):# switch只能⽤于 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】
'''
遇到问题没⼈解答?⼩编创建了⼀个Python学习交流QQ:778463939
寻有志同道合的⼩伙伴,互帮互助,⾥还有不错的视频学习教程和PDF电⼦书!2021年最受欢迎的编程语言
'''
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⾏代码使⽤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。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论