由于python中没有switch/case语句,break关键字现在也就只能用于循环控制了

跟大多数编程语言一样,break可以中止当前层的循环

例子:

>>> for i in range(10):
...     if (i == 5):
...             break
...     print i,
... 
0 1 2 3 4


在python里,for语句多了一个功能,就是能搭配else语句使用!



看看官方给的例子,判断2-9中的质数和因数

>>> for n in range(2, 10):
...     for x in range(2, n):
...         if n % x == 0:
...             print n, 'equals', x, '*', n/x
...             break
...     else:
...         print n, 'is a prime number'
... 
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3

可以看到,else语句的缩进和for语句的缩进是一样的,也就是说,这里的else不是if的字句,而是for的子句


这里的话,可以从输出结果中看出来,else子句的执行条件是:for循环正常执行完毕,或者(while语句的条件判断结果为false时)

如果for语句或者while语句在半途中被break掉,那么将不会执行else子句中的内容


关于continue语句,也直接来看例子就好了,用法跟其他流行刘系语言中的continue的基本一致,用于结束本次循环的执行体,跳转到下一次循环

判断2-9中的奇数和偶数

>>> for num in range(2, 10):
...     if num % 2 == 0:
...         print 'Found an even number', num
...         continue
...     print 'Found a number', num
... 
Found an even number 2
Found a number 3
Found an even number 4
Found a number 5
Found an even number 6
Found a number 7
Found an even number 8
Found a number 9



顺带一提pass语句,感觉这是基本用不到的东西,就不单独另外开贴说了

这个语句在编程中应该算是个概念语句,它不做具体的东西,它只是一个默默的占位符一样的东西

它的意思就是去执行下一条语句

官方给了个很有意思的例子

>>> while True:
...     pass  #你只有用Cirl+C才能终止我
...


dfadsfsadf
sdf
ads
f
er
^CTraceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyboardInterrupt

这玩意我现在看来就是个玩具,只是用来玩的东西而已


不过python既然把它作为标准关键字之一的话,那可能有点实用价值,等我以后发觉了再回来补充吧