2016-11-21 2 views
0

私は座標:(0 | 0)(10 | 0)(10 | 10)(0 | 10)の短いリストを持っています。これらの座標を使用して、構築する正方形の面積を計算しようとしています。 forループは4回実行し、下に書かれた数式を実行します。数式/ループのリストからの値を使用する

はTypeError:「int型」オブジェクトの添字

list = [[0,10,10,0],[0,0,10,10]] 

def gaussarea(coords): 
    area = 0 
    for coords in coords: 
     area = area + (coords[0][0] - coords[0][1]) * (coords[1][0]+coords[1][1]) 
    return area 

a = (gaussarea(list)) 
+0

あなたの変数名は、これを不必要に混乱させます。あなたは何をしようとしているのか分かるように算術の最初の2行を書くことができますか? 'area = area +(0-0)*(10 + 0)' –

+1

あなたは変数名 'list'が' built-in'型[list](https://docs.python.org)と競合しています/3/library/functions.html#func-list) – davedwards

答えて

0

ではありませんあなたはintのインデックスにアクセスしようとしている、これは私がエリア内に次のエラーを取得する実行している場合= ....行が それぞれcoordsがリストであり、ネストされたリストではないので意味がありません。

あなたは確かに、長方形(または正方形)を取得すると仮定すると、あなたはcords[0]の値がint型である

def gaussarea(coords): 
    area = (coords[0][1] - coords[0][0]) * (coord[1][2] - coords[1][1]) 
    return area 
0

で十分です。したがって、cords[0][0]はintにインデックスを作成しようとしているため、エラーになります。 forループを削除するとコードが機能します。

関連する問題