2016-10-08 12 views
0

Ich schreibe ein Programm zum Öffnen und Lesen einer TXT-Datei und durchlaufen Schleifen jede Zeile. multiplizieren Sie die Werte in der 2. und 4. Spalte und ordnen Sie sie der 5. Spalte zu."TypeError: kann Tupel (nicht" float ") nur zu Tupel verketten"

A 500.00 A 84.15 ? 

B 648.80 B 77.61 ? 

C 342.23 B 39.00 ? 

dieser Teil von Codes, die ich schrieb,

for line in infile: 
    a,b,c,d = line.split() 
    e = eval(b) + eval(d) 

    print("{0:20}${1:20}{2:20}${3:20}{4:20}".format(a,b,c,d,e),file=outfile) 

Ich hielt einen Fehler immer sagen,

File "C:/Users/hee lim/Desktop/readfile2.py", line 19, in main e = eval(b) + eval(d) TypeError: can only concatenate tuple (not "float") to tuple

ich verdeckte Strings in Zahlen mit "eval", um diese Zahlen zu multiplizieren. Ich verstehe nicht, warum es einen Fehler kennzeichnet.

danke für Ihre Hilfe.

+0

Seite Ihren vollständigen Code bitte. –

+0

@TilakMadichetti Ich glaube, du meinst _paste_. –

Antwort

1

auf diese Informationen, Sehen, konnte ich nur sagen, dass der Wert von eval von b und d zurückgekehrt sind von float und tuple Typ. Und Sie können nicht + auf float und tuple tun. Zum Beispiel:

>>> 5.0 + (2 ,3) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: unsupported operand type(s) for +: 'float' and 'tuple' 

für das Debuggen, fügen print line zu Beginn der for Schleife an, um zu sehen, welchen Wert es Fehler zu erhöhen.

+0

Vielen Dank !!!, als ich mit Ihrem Code debugging, fand ich heraus, dass es einen Tippfehler "1.400.00" in meiner ursprünglichen txt-Datei, Python erkannte es als ein Tupel .. – heej

Verwandte Themen