2017-08-25 1 views
0

Ich verwende Funktionen, um eine Einkaufsliste zu codieren. Der Benutzer wird Fragen wie der Name des Objekts, die Menge, der Shop, aus dem sie es kaufen und den Preis davon. Diese werden dann zu einer CSV-Datei hinzugefügt. Der Benutzer kann nach dem Gesamtpreis fragen, so dass er sieht, wie viel er ausgeben wird.TypeError: Listenindizes müssen Ganzzahlen sein, nicht Tupel mit Funktionen

Hier ist mein Code:

def TotalCost(): 
ViewItem = ViewList() 
with open ("C:\\Users\\sophie\\Documents\\Sophie\\Homework\\Year 11\\Computer Science\\ShoppingList.csv") as csvfile: 
    readcsv = csv.reader(csvfile)#delimeter=',') 
    TotalCost=0 
    for i in range(1,3): 
     TotalCost=TotalCost+int(ViewItem[i,3]) 

def ViewList(): 
    with open ("C:\\Users\\sophie\\Documents\\Sophie\\Homework\\Year 11\\Computer Science\\ShoppingList.csv") as csvfile: 
     reader=csv.reader(csvfile)#,delimeter=',') 
     for row in reader: 
      ItemView.append(row) 
     return ItemView 

Hier anderen Code, der auf die Frage correspomds:

elif ModeChose=='C': 
TotalCost() 

Dies ist der Fehler, den ich bekommen:

Traceback (most recent call last): 
    File "C:\Users\sophie\Documents\Sophie\Homework\Year 11\Computer Science\ShoppingList.py", line 106, in <module> 
    TotalCost() 
    File "C:\Users\sophie\Documents\Sophie\Homework\Year 11\Computer Science\ShoppingList.py", line 18, in TotalCost 
    TotalCost=TotalCost+int(ViewItem[i,3]) 
TypeError: list indices must be integers, not tuple 
+2

'ViewItem [i] [3]' – Barmar

+1

Sie haben eine Funktion namens TotalCost(), und eine Variable namens TotalCost ... –

+1

@ReblochonMasque Ich denke, er ruft nur 'TotalCost()' einmal, so dass es nie bemerkt Er kann es nicht mehr aufrufen, nachdem es ausgeführt wurde. – Barmar

Antwort

1

Die Syntax für Zugriff auf Elemente in verschachtelten Listen ist

variable[1stindex][2ndindex][3rdindex]... 

so sollte es sein:

TotalCost=TotalCost+int(ViewItem[i][3]) 

1,3 ist ein Tupel, die nicht als Listenindex verwendet werden.

Verwandte Themen