ich mit der folgenden Codezeile in ein Problem leite:Zwei Schwimmer werfen Typeerror: nicht unterstützte Operandtyp (e) für +: ‚float‘ und ‚str‘
underground['distributed_load_C'] = float(ugLineList[21])*1000 + ('+' if float(ugLineList[24]) >= 0.0 else '-') + abs(float(ugLineList[24]))*1000j
Die ursprünglichen Werte gezogen von ugLineList sind Strings und ich versuche sie vor dem Hinzufügen in floats zu schreiben. Auch wenn ich versuche, sie zu geben warf ich die folgende Störung erhalte:
TypeError: unsupported operand type(s) for +: 'float' and 'str'
Ich habe versucht Typ sie vor dieser Aussage Gießen und prüfen, ob die Code-Schnipsel sind wirklich schwimmt: print type(float(ugLineList[21])*1000), type(float(ugLineList[24]))
- -><type 'float'> <type 'float'>
Ich bin wirklich verwirrt, was hier vorgeht, so dass jede Hilfe sehr geschätzt wird.
Danke !!
Ihr Code endet als float + str + float. Die str ist entweder '+' oder '-'. Warum fügst du '+' oder '-' hinzu? – FamousJameous
Die beiden Zahlen werden in Float umgewandelt, aber die Operation zwischen ihnen ist eine Zeichenfolge (d. H. "+" Oder "-"). Sie sollten die 'if' -Anweisung neu formulieren, so dass Sie' ugLineList [24] 'speziell für das Zeichen überprüfen, und dann die richtige Operation ausführen, indem Sie explizit den richtigen arithmetischen Operator verwenden. – rayryeng
Ich hatte das Gefühl, es war ein Problem mit der if-Anweisung, der Typumwandlung und der Überprüfung des Zeichens, bevor die Operation ausgeführt wurde. Im Nachhinein bin ich mir nicht sicher, warum ich die Bedingung für das Hinzufügen oder Subtrahieren per Alg_D's Antwort hinzugefügt habe. Danke allen! – lewis2ba