Was bedeutet : TypeError: cannot concatenate 'str' und 'Liste' Objekte bedeuten?
Was hat dieser Fehler zu bedeuten?
TypeError: cannot concatenate 'str' und 'Liste' Objekte
Hier ist ein Teil des Codes:
for j in ('90.','52.62263.','26.5651.','10.8123.'):
if j == '90.':
z = ('0.')
elif j == '52.62263.':
z = ('0.', '72.', '144.', '216.', '288.')
for k in z:
exepath = os.path.join(exe file location here)
exepath = '"' + os.path.normpath(exepath) + '"'
cmd = [exepath + '-j' + str(j) + '-n' + str(z)]
process=Popen('echo ' + cmd, shell=True, stderr=STDOUT )
print process
- Können Sie post-Codes?
- habe es - meine Antwort für Sie funktioniert jetzt.
- sonst == '52.62263.': <-- ist ein syntax-Fehler in python
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mir nicht sicher, Sie sind sich bewusst, dass
cmd
ist eine ein-elementlist
, und nicht einen string.Ändern, die Zeile zu der folgenden erstellen Sie eine Zeichenfolge, und der rest des Codes funktioniert:
Ich nehme an, Sie verwendeten Klammern nur zum gruppieren der Operationen. Das ist nicht notwendig, wenn alles in einer Zeile. Wenn Sie wollte, es zu brechen die sich über zwei Zeilen, sollten Sie verwenden Sie Klammern, nicht Klammern:
Alles, was zwischen eckigen Klammern in python ist immer eine
list
. Ausdrücke in Klammern ausgewertet werden, als normal, es sei denn, es ist ein Komma im Ausdruck, in welchem Fall die Klammern fungieren alstuple
Konstruktor:string-Objekte können nur verkettet werden mit anderen Saiten. Python ist eine stark typisierte Sprache. Es wird nicht zwingen Typen für Sie.
können Sie tun:
aber nicht:
in Ihrem Fall, Sie versuchen, concat string und eine Liste. das wird nicht funktionieren. Sie können hängen Sie den Punkt auf der Liste, obwohl, wenn, dass ist das gewünschte Ergebnis:
Gibt es ein WEITERES problem in der OP-code:
z = ('0.')
dann späterfor k in z:
Den Klammern in der ersten Anweisung wird ignoriert werden, führt zu der zweiten Aussage verbindlich
k
erste'0'
und dann'.'
... sieht aus wiez = ('0.', )
bestimmt war.