2016-10-26 1 views
1

私は現在、小さなpythonスクリプトを書いています。 次のようなExceptionError中にbreakを使用してもよろしいですか? 私は2つのリスト(aとb)を持っています、そして、私はループからループへの1つの値を転送しようとしています。ここでPythonの例外エラー処理にbreakを使用してもよろしいですか?

はコードです:

while True: 
    try: 
     b.append(a.pop(0)) 
    except IndexError: 
     print "a is empty !" 
     break 

    [...other code I don't wanna execute if I have an IndexError...] 

は、それのpython-話す "OK" のように実行しますか?私はPythonでErrorExceptionの内部でループを終了するのが最善の方法ですか?

ありがとうございます!

+1

このエラーは 'a'が空の場合に発生します。それを超えて、これは問題ありません。 –

+0

どうして 'while a:'なのですか? –

+1

@StefanPochmannこれは技術的に高速だと思います。 tryブロックは、例外がスローされない限り、オーバーヘッドが低くなります。すべてのループをチェックするのではなく、1回だけ発生します。 –

答えて

2

一般的な原則として、はい、これは問題ありません。しかしwhileループの状態でこれと同じくらい単純なチェックを行う方がはるかに良いです:

while a: 
    b.append(a.pop(0)) 
0

これは完全にこの方法です! :)

関連する問題