Python 循环中的 else 语句
2010-06-20
绝大部分编程语言中都有条件判断语句,比如 if ... else
,在大部语言中,else
一般只在条件判断语句中出现,与 if
语句配套出现,不过在 Python 中,else
除了能与 if
这样的条件判断一起出现外,还能出现在 for
、while
这样的循环语句中。
我们来看一个例子:
s = ["a111", "b222", "c333", "d444", "e555"]
found = False
for c in s:
if c.startswith("c"):
found = True
print u"发现以字母c开头的项"
break
if not found:
print u"没有发现以字母c开头的项"
做一次循环,如果发现满足条件的字母则打印出提示信息,循环完了还没有发现则打印出另一条信息。我们需要设置一个额外的变量来记录是否找到了目标字符(程序中的 found
变量),在循环完成之后再做一个 if
判断。
上面的写法当然是可以的,不过如果我们使用循环中的 else
语句的话,代码会更简洁清晰。比如:
s = ["a111", "b222", "c333", "d444", "e555"]
for c in s:
if c.startswith("c"):
print u"发现以字母c开头的项"
break
else:
print u"没有发现以字母c开头的项"
在这儿,记录是否找到的额外的变量不需要了,也不再需要在循环完成后再进行 if
判断,但达到的效果和第一段代码是一样的。
在 Python 中,for ... else
表示这样的意思,for
中的语句和普通的没有区别,else
中的语句会在循环正常执行完(即 for
不是通过 break
跳出而中断的)的情况下执行,while ... else
也是一样。
前一篇智力蛮力(二)
发表评论:
电子邮件地址不会被公开。必填项已用 * 标注。
评论: