ループのelseとtryのelse

Pythonはかなり*ふつう*の言語だなあという気がします。なので、「嫌い」という理由でPythonを使わない人はいたとしても、「わからない、難しい」という理由でPythonを使わない人は少ないのではないかと思います。

そんな*ふつう*の言語Pythonの中でも、ちょっと驚いた点といえば、ループにelseがあることと、tryにelseがあることです。他の言語にあるのかな。

ループのelse

ループのelseは、ループを正常に抜けた時にだけ実行します*1。正常に抜けた時というのは、ループの条件式が偽になって抜けた時なんかのことで、正常じゃないというのはbreakで抜けた時です。

>>> for i in range(3):
	print i
else:
	print "end."

	
0
1
2
end.
>>> for i in range(3):
	print i
	break
else:
	print "end."

	
0
>>> 

(これがどんな時に便利か、を考えてあとで書く)

*1:「正常に」というのは私が勝手に思ったことを書いているだけで、Python用語ではありません