开发者社区> 问答> 正文

几天以来一直处于挣扎状态,此“继续”语句如何离开“ a”并打印其余字母

my_string='Sammy' for letter in my_string: if letter =='a': continue print(letter)

好的,我理解继续语句返回最接近的封闭循环的顶部,但是如何离开'm'并打印其余字母...。我知道我肯定错过了好几天都找不到的东西吗?

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 15:48:12 522 0
1 条回答
写回答
取消 提交回答
  • 如果您想了解“继续”的工作方式,则必须首先了解“中断”的工作方式。

    在循环中,如果您的代码出现中断,则最接近的循环关闭。这是什么意思?让我们看一下您的代码,但将“ continue”更改为“ break”

    my_string='Sammy'
    for letter in my_string:
        if letter =='a':
            break
        print(letter)
    

    您认为会发生什么?在正常情况下,for循环将打印字符串中的所有字符。这样做时,在字母a处代码会遇到“中断”。休息会立即关闭您的循环。这意味着您的代码将只打印“ S”字母,因为您先检查字母然后再打印。让我们遵循代码,

    1)创建一个名为my_string的变量,并为其分配“ Sammy”

    2)以my_string变量的字母开始循环

    2-1)字母是“ a”吗?不,这是一个“ S”

    2-2)打印S

    2-3)下一封信

    2-4)字母是“ a”吗?是的。

    2-4-1)休息

    2-4-2)打破最紧密的循环

    2-4

    2

    3)还有其他事情要做吗?没有,

    4)关闭程序

    现在让我们谈谈“继续”。Continue也可以做类似的事情,但是它并不会完全关闭循环,而是进入下一个状态。这次运行代码。

    my_string='Sammy'
    for letter in my_string:
        if letter =='a':
            continue
        print(letter)
    

    1)创建一个名为my_string的变量,并为其分配“ Sammy”

    2)以my_string变量的字母开始循环

    2-1)字母是“ a”吗?不,是“ S”

    2-2)打印“ S”

    2-3)下一封信

    2-4)字母是“ a”吗?是的。

    2-4-1)继续

    2-4-2)进入下一个状态(忽略循环的其余部分)

    2-5)字母是“ a”吗?不,它是“ m”

    2-6)打印“ m”

    2-7字母是“ a”吗?否再次是“ m”

    2-8)打印“ m”

    2-9)字母是“ a”吗?不,是“ y”

    2-10)打印“ y”

    2-11)还有字母吗?不,没有。闭环

    2

    3)还有事情要做吗?不,没有

    4)关闭程序

    继续使您进入下一个状态,而不是当前状态的开始。

    如果你这样写

    a = 5
    while a<10:
        continue
        a=a+1
    

    您将进入无限循环,因为每次您看到继续时,您的代码都会进入下一个状态。但这是一个while循环,而while循环对其变量没有任何作用。在下一个状态下,a将一次又一次地为5。

    回答来源:stackoverflow

    2020-03-24 15:48:21
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载