Python循环语句代码逐行详解:while、for、break和continue

**导读:**循环语句是指重复执行同一段代码块,通常用于遍历集合或者累加计算。Python中的循环语句有while语句、for语句。

01 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

【代码说明】

  • 第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  
     i = 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  
    i = i + 1  
    print(i)

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

02 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 < 5:  
    print(x)  
    x = x + 2

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

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

【代码说明】

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

0  
2  
4

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

03 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资料,除了为你提供一条清晰的学习路径,我甄选了最实用的学习资源以及庞大的实例库。短时间的学习,你就能够很好地掌握爬虫这个技能,获取你想得到的数据。

01 专为0基础设置,小白也能轻松学会

我们把Python的所有知识点,都穿插在了漫画里面。

在Python小课中,你可以通过漫画的方式学到知识点,难懂的专业知识瞬间变得有趣易懂。
在这里插入图片描述
在这里插入图片描述
你就像漫画的主人公一样,穿越在剧情中,通关过坎,不知不觉完成知识的学习。

02 无需自己下载安装包,提供详细安装教程

在这里插入图片描述

03 规划详细学习路线,提供学习视频

在这里插入图片描述
在这里插入图片描述

04 提供实战资料,更好巩固知识

在这里插入图片描述

05 提供面试资料以及副业资料,便于更好就业

在这里插入图片描述
在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要也可以扫描下方csdn官方二维码或者点击主页和文章下方的微信卡片获取领取方式,【保证100%免费】
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值