2017-06-21 3 views
-6

Ich lerne die Python und ich stieß hier auf ein neues Problem. Kann jemand diesen Python-Code erklären, was genau intern passiert?String Verkettung schlägt fehl

>>> s="sam" 
>>> s +="dam" 
>>> s 
'samdam' 
>>> d +=s 
>>> d 
'msamdam' 
>>> f = f+s 

Traceback (most recent call last): 
    File "<pyshell#129>", line 1, in <module> 
    f = f+s 
TypeError: unsupported operand type(s) for +: 'int' and 'str' 
>>> f +=s 

Traceback (most recent call last): 
    File "<pyshell#130>", line 1, in <module> 
    f +=s 
TypeError: unsupported operand type(s) for +=: 'int' and 'str' 
+2

Was ist f in Ihrem Code? – HH1

+2

Könnten Sie Ihren Code aktualisieren, um die Instanziierungen von d und f einzuschließen? – Fabien

Antwort

0

f ist ein integers und ein string ist. Sie können Zahlen und Zeichenfolgen nicht verketten.

Sie können es, indem Sie so funktioniert:

x = str(f) + s 

Diese f in eine Zeichenfolge konvertieren und dann mit s verketten. Wenn z. B. f123 ist, wird x123msamdam.

1

Ich kann davon ausgehen, dass die Variable f ist ein Integer-Typ und s ist eine Zeichenfolge. Sie können Integer und String nicht auf diese Weise verketten. Wenn Sie dies tun möchten, sollte es sein wie:

str(f) + s 
0

Es scheint, dass f eine ganze Zahl ist hier, vielleicht können Sie:

f = str(f) + s 

Auf diese Weise f eine Zeichenfolge sein wird.