Ce n' : TypeError: ne peut pas concaténer 'str' et 'liste' objets?
Que fait cette erreur signifie?
TypeError: ne peut pas concaténer 'str' et 'liste' des objets
Voici une partie du code:
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
- Vous pouvez poster votre code?
- eu - ma réponse qui fonctionne pour vous maintenant.
- d'autre == '52.62263.': <-- est une erreur de syntaxe python
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr que vous êtes conscient que
cmd
est un élémentlist
, et non une chaîne.Changer cette ligne au-dessous de construire une chaîne de caractères, et le reste de votre code fonctionne:
Je suppose que vous avez utilisé entre parenthèses juste pour regrouper les opérations. Ce n'est pas nécessaire si tout est sur une seule ligne. Si vous voulait le briser, sur deux lignes, vous devez utiliser des parenthèses, pas de crochets:
Quoi que ce soit entre crochets en python est toujours un
list
. Les Expressions entre parenthèses sont évaluées comme normal, sauf si il y a une virgule dans l'expression, dans ce cas, les parenthèses agir comme untuple
constructeur:chaîne objets ne peuvent être concaténées avec d'autres chaînes. Python est fortement typées de la langue. Il ne sera pas contraindre types pour vous.
que vous pouvez faire:
mais pas:
dans votre cas, vous essayez de la concaténation d'une chaîne et d'une liste. cela ne fonctionnera pas. vous pouvez ajouter l'élément à la liste, si c'est votre résultat souhaité:
Il y a un AUTRE problème dans le cas des OP code:
z = ('0.')
puis plus tardfor k in z:
Les parenthèses dans la première instruction est ignorée, conduisant à la deuxième déclaration de liaison
k
premier à'0'
et puis'.'
... ressemble àz = ('0.', )
était destiné.