-2
3つの繰り返し(内部に2つの小さなループがあるループ)を含むコードを実行するPythonといくつかのarcpyモジュール(私の質問では重要ではないと思う)を使用しています。私のコードは次のようになります:Pythonの2番目のループが検出されない
file = r"C:Directory\File"
cursor = arcpy.SearchCursor(file,fields)
A = range(1,270)
os.chdir ('C:\Directory')
book = xlwt.Workbook()
sheet1 = book.add_sheet('Sheet1',cell_overwrite_ok = True)
for a in A:
tot = 0
result = 0
for row in cursor:
if row.getValue('Firstfield') == a:
tot = tot + row.getValue('secondfield')
print (tot)
for row in cursor:
print row.getValue('GTYS_Branc')
if row.getValue('GTYS_Branc') == a:
result= result + row.getValue(Field1) * ((row.getValue(Field2))/tot)
sheet1.write((branch-1),0,finalIIIprob)
sheet1.write((a-1),1,result)
book.save('Excel.xls')
コードは動作しますが、私には結果が得られません。私は問題は実際には2番目の内部ループと最初の内部ループの後の最初の内部ループのすべての反復を無視することに気づいた。何が問題なの?
問題は、あなたがあなたのインテリアループで行うように、あなたの 'カーソル '全体を反復した後、何度も反復することが残っているので、次に次の行を取得しようとするとすぐに終了します。それはすでにすべての行を放棄しており、最後にあります。 – kindall
2つのループで変数を異なるようにします。例えば、第1のループ「for row0 in cursor」、第2ループ「for row1 in cursor」。 – tom10
ありがとう、私はこのやり方でやったし、今もそれを繰り返します。問題は結果の計算中に結果がresult_ result + ...という結果の計算中にエラーメッセージが表示されることです。(この部分をより正確に表示するように質問を修正しました) "TypeError:" floatオブジェクトは呼び出し可能ではありません – Patapunfate