当循环结束时会发生什么?

时间:2014-01-30 16:53:39

标签: python loops break continue

我是python初学者,没有以前的编程知识。我为这个话题的名字道歉,但我根本无法做出更好的话题。 这就是我想要的:

letter = "w"   # search for this letter in the list bellow
listL = ["z","b","y","a","c"]

for let in listL:
    if let == letter:
        print "found it"
        break
    else:
        if  let == listL[-1]:
            print "nope can't find it"
        continue

我有一个字母列表,我想搜索该列表中的特定字母。 如果我找到了这封信,那么一切都很好,for循环应该停止。 如果我没有找到它,我希望循环停止当前迭代,并尝试使用列表中的下一个字母。如果列表中的单个字母没有该特定字母,那么它应该打印“nope找不到它”。

上层代码有效。但我想知道这是否可以写得有点清楚?显然,我并不是指“先进的”,而是学者的方式,一种从书本方面的例子。

谢谢。

5 个答案:

答案 0 :(得分:6)

Python为for循环提供else语句,如果循环结束而不被破坏,则执行该循环:

for let in llistL:
    if let == letter:
        print("Found it!")
        break
else:
    print("nope could'nt find it")

这将是for循环的“学者方式”,但是如果您只是测试列表中元素的存在,Arkady的答案就是要遵循的答案。

答案 1 :(得分:5)

如何:

if letter in listL:
    print "found it"
else:
    print "nope..."

答案 2 :(得分:3)

只需在

中使用即可
if let in listL:
    print("Found it")
else:
    print("Not found")

编辑:你快30秒了,恭喜;)

答案 3 :(得分:1)

在Python中实际上有for: else:构造,如果else循环 forbreak会运行:

for let in listL:
    if let == letter:
        print("Found it")
        break
else:
    print("Not found")

或者,您可以使用list.index,如果在列表中找到,则会提供项目的索引,如果找不到则会引发ValueError

try:
    index = listL.index(letter)
except ValueError:
    print("Not found")
else:
    print("Found it")

答案 4 :(得分:1)

你的循环将一直循环,直到它破坏(找到它!)或列表已用尽。你不需要做任何特别的事情来“停止当前的迭代,并尝试使用列表中的下一个字母”。当字母不匹配时,我们不需要continue,只要有更多的字母要检查,这将自动发生。

我们只想在搜索整个列表后显示“nope找不到它”,所以我们不需要检查直到结束。此else语句对应于for循环,而不是您之前代码中的if

letter = "w"   # search for this letter in the list bellow
listL = ["z","b","y","a","c"]

for let in listL:
  if let == letter:
    print "found it"
    break #found letter stop search
else: #loop is done, didn't find matching letter in all of list
  print "nope can't find it"