Típusok és ütközésük

Ahogyan megszokhattuk, egy műveleti jelnek többféle jelentése lehet.

A + jel jelölheti számok összeadását:

>>> 3+7
10

Ugyanez a jele a stringek összefűzésének, a konkatenációnak:

>>> '3'+'7'
'37'

Ugyanígy fűzhetünk össze két listát is:

>>> [3] + [7]
[3, 7]

Egyes esetekben a típuskonverzó automatikus (és független az operandusok sorrendjétől):

>>> 3+7.0
10.0
>>> 3.0+7
10.0

A hibaüzeneteknek érdemes az utolsó sorát tekinteni:

>>> 7+'3'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>> '3'+7
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Can't convert 'int' object to str implicitly
>>> [3] + 7
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "int") to list

Az utolsó sorban elkövetett hibára érdemes odafigyelni. A későbbiekben sokszor kell új elemet adnunk egy lista végéhez: ilyenkor a lista korábbi értékéhez egy egyelemű (az új elemet tartalmazó) listát kell hozzáfűnünk.