2012-01-29 11 views
3

else:の行は、このPythonプログラムで正しい/必要ですか? documentationからこのPythonプログラムでは `else:`が正しい/必要ですか?

from random import randrange 
for n in range(10): 
    r = randrange(0,10) # get random int in [0,10) 
    if n==r: continue # skip iteration if n=r 
    if n>r: break # exit the loop if n>r 
    print n 
else: 
    print "wow, you are lucky!\n" 
if n<9: 
    print "better luck next time\n 
+2

プログラムはコンパイルされませんが、 'if n = r:'部分のためだけです。 – delnan

+3

@Rik Poggi:この質問は、コードスニペット全体のコードレビューではなく、特定のコンテキストでの 'else:'構造の構文上の妥当性について尋ねています。 – BoltClock

答えて

5

ループ文はelse節を有していてもよいです。ループが終了したときに実行されます(forを使用して)または条件がfalse(whileとともに)になったときbreakステートメントでループが終了しないときに実行されます。

はい、正しくありますあなたの例。私は決してファンではありませんでしたが、ループでelse節を使用すると、最初はコードが混乱し、同じ効果を達成するためにブール値フラグを使用したいと思います。 IMHO elseは、条件文にのみ使用してください。

3
from random import randrange 
for n in range(10): 
    r = randrange(0,10) 
    if n=r: continue # there should be == 
    if n>r: break 
    print n    # should be "\n" ? 
else: 
    print "wow, you are lucky!\n" # Yes, you are! Your python interpreter can make miracles :). Try to run me.append(SexyChick(10)) and let's see what happens! 

for...else構成体が実際に有効です。 breakによってループが終了していない場合は、else分岐が実行されます。 Look hereをご覧ください。

関連する問題