my_string='Sammy' for letter in my_string: if letter =='a': continue print(letter)
好的,我理解继续语句返回最接近的封闭循环的顶部,但是如何离开'm'并打印其余字母...。我知道我肯定错过了好几天都找不到的东西吗?
问题来源:stackoverflow
如果您想了解“继续”的工作方式,则必须首先了解“中断”的工作方式。
在循环中,如果您的代码出现中断,则最接近的循环关闭。这是什么意思?让我们看一下您的代码,但将“ 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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。