Page List

Search on the blog

2010年5月12日水曜日

Pythonすげー@_@ (ループのelse文)

Google Code Jam予選の悲惨な結果を受けて、Pythonの勉強を始めた。
Round 1が開催される2週間前に、新しい言語を選択するなんてちょっと無謀な冒険にも思えたが、そんなことはないようだ。

Pythonすげーー。
何かPythonマスターしたら、何でも簡単に出来そうな気がしてきた。

いろいろ便利な機能があるのだが、今日はループ文のelse文を紹介する。
Pythonはループにelse文を付けることができる。どういう意味か分かるだろうか?

例えば、整数xが素数であれば、"The input value is a prime number." と表示する関数 isPrime(x)をループのelse文を利用して書いてみよう。

def isPrime(x):
for i in range(x-1, 1, -1):
if not x % i:
break
else:
print "The input value is a prime number."

如何だろうか?
ループ文内でbreakを利用し、
  • 与えられた終了条件まで完了してループを抜けたのか
  • breakによってループを抜けたのか
を判断したい場面はしばしばある。else文は、ループが与えられた終了条件を満たして終了した場合(つまり、ループ内の条件が偽になった場合)にのみ実行される。
for文と同様に、while文においてもelseを使用することが出来る。

def isPrime(x):
i = x
while (i-1) > 1:
i = i - 1
if not x % i:
break
else:
print "The input value is a prime number."

これは、今までに勉強してきた言語には無かった機能である。このelse文を使うことで可読性の高い均一的なコードの作成が期待できるのではないだろうか?

0 件のコメント:

コメントを投稿