Python中break,continue,return的区别

举报
布小禅 发表于 2021/06/27 13:25:34 2021/06/27
【摘要】 break continue return的区别

前言

如果我需要设置一个死循环,然后靠条件来终止,怎么办?

一个很简单的问题,但是我却没有说,这一篇本应该在分支控制语句里面的,现在只能拿出来水文再写一篇了

条件控制语句的补充

在循环里面,我们可以通过关键字来手动终止循环,而不是把整个程序停了来终止。

三种语句:break return continue都可以使循环停止

不过return一般都是用到函数里面的,都是使用break

而continue 不是用来终止循环的,具体作用看下面代码示例

break

看汉语也有个大概思想:打破

它的作用是打破循环,使循环碰到它后终止

break的作用是打破结构体,使程序退出当前代码块

下面看这个例子,我们要实现的功能是循环获取用户从键盘输入的数据,直到输入q来推出程序

while True:
    a = input()
    if a == "q":
        break
    else:
        print(a + "  输入成功,输入 'q' 退出程序")

运行结果:

在这里插入图片描述

此时我们发现,输入q推出了,但是我们看着并不舒服,我们还可以加个提示,或者让他再输入一次“确认”来确认是否要推出

while True:
    a = input()
    if a == "q":
        print("确定要推退出,确定的话,请输入确定退出来确定")
        if input() == "确定退出":
            print("已退出,程序结束")
        break
    else:
        print(a + "  输入成功,输入 'q' 退出程序")
        

运行结果:

在这里插入图片描述

这样就完美了,我这可不是谁字数啊,我这是强迫症(认真脸)!

continue

continue是跳出当前循环,执行下一循环,也就是说,他并没有令循环终止的能力,他只能令循环少循环一些次数

我们先把上面的代码里面的break换成continue试试

while True:
    a = input()
    if a == "q":
        print("确定要推退出,确定的话,请输入确定退出来确定")
        if input() == "确定退出":
            print("已退出,程序结束")
        
    else:
        print(a + "  输入成功,输入 'q' 退出程序")
        

行不通

在这里插入图片描述

退出不了!

果然吧,那么continue有啥用呢?

我先不说,你先看:

for i in range(10):
    if i % 5 == 0:
        continue
    else:
        print(i)  

运行结果:

在这里插入图片描述

return

return意为返回,是用在函数中的返回值的,至于函数是什么,我们会在本专栏中陆续讲述,你先看效果就可以了

我们计算当i的值循环到5时,让a+b,然后计算完终止

当i为5时,不管循环是否进行完,都会强行终止

def sum(a, b):
    for i in range(10):
        if i<a:
            pass
        else:
            a+=b
            return a
print(sum(5, 2))

pass的意思就相当于什么都不做

运行结果为:7

那么如果我们把return的位置换一下呢?

def sum(a, b):
    for i in range(10):
        if i<a:
            pass
        else:
            a+=b
        return a
print(sum(5, 2))

我们的循环会在第一次就终止,因为第一次i的值为0,满足判断条件,执行return语句,结束循环

那么如果我们再换一下呢?我们这次放在循环外面,那么肯定是循环执行完才会结束了,会把a+=b执行一次,还是7

def sum(a, b):
    for i in range(10):
        if i<a:
            pass
        else:
            a+=b
    return a
print(sum(5, 2))

结语

本来打算把迭代器生成器也写了的,但是想想还是别了

如果你能把这理解了,那么后面就不会有什么困难了,我也不是不想写很简单的例子,当然这个也算不得多难,但是确实是有一点绕和浪费资源的。

我希望你们不仅在这篇博客会了break,continue,return,并且也能把缩进,代码层次和代码运行的过程给 了解,那样就很棒了

兴趣是最好的老师,坚持是不变的真理。
学习不要急躁,一步一个脚印,踏踏实实的往前走。
每天进步一点点,日积月累之下,你就会发现自己已经变得很厉害了。

我是布小禅,一枚自学萌新,跟着我每天进步一点点吧!

说了这么多暂时也就够了,那么就告辞吧

在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。