1
for i,j in enumerate(output.readlines()):
    if i%len(tag) == 0:
         [1]
         [2]
         etc
         if i%len(tag) == len(tag) - 1:
            outputfile.write(<"something">)    

もっとコードがありますがZeroDivisionError、このコードの最初の 2 行と最後の 2 行を編集して以来、問題が発生しています。なぜこのエラーが発生したのかわかりません。

4

2 に答える 2

2

len(tag) で別の値を mod( % )しようとする前に、 len(tag) が 0 でないことを確認する必要があります。mod( % ) は基本的に除算演算であるため、len(tag) が 0 の場合、 ZeroDivisionError が返されます

len(tag) が 0 の場合に for ループをエスケープする次のコードを検討してください。

for i,j in enumerate(output.readlines()):
    if len(tag) == 0:
        continue
    elif i % len(tag) == 0:
        #Rest of your code here.. 
        if i % len(tag) == len(tag) - 1:
            outputfile.write("something")
于 2012-12-05T02:01:18.827 に答える
0

エラーがコードのこの部分にある場合は、ある時点でlen(tag)等しくなります。0(x%0は と同様に定義されていませんx/0。)

print tagif ステートメントの前に置いて、問題がどこにあるかを確認します。

より多くのコードを見ないと、より具体的になることはできません(tag定義/変更された場所など)。

于 2012-12-05T01:57:17.537 に答える