Several ways to concatenate strings in python:

  • string concatenate by +
  • +=
  • .join
  • concatenate string and integer
  • concatenate two integers
  • errors

Python concatenate by +

The simplest and the most easy to read concatenation is by using plus operator. The other advantages are that is fast and intuitive. The + operator behaves like real plus operator for strings.

text1 = 'I\'m a '
text2 = 'string'
text = text1 + text2

print(text)

result:

I'm a string

Note: In case of different types - for examples string and integer - you will get error:

TypeError: cannot concatenate 'str' and 'int' objects

Python concatenate by +=

The += operator is similar to the +. This one reminds more to append. You don't need third string in order to concatenate two strings.

text1 = 'I\'m a '
text2 = 'string'
text1 += text2

print(text1)

result:

I'm a string

Python concatenate by join

If you want to use a method for concatenation in python you can use: join. You need to pass all strings as iterable:

  • [str1, str2]
  • (str1, str2, str3)

The output should be assign to new variable.

str1 = "test "
str2 = "join "
str3 = ''.join([str1, str2])
str4 = ''.join((str1, str2, str3))
print(str3)
print(str4)

result:

test join
test join test join

Python concatenate string and int

If you want to do concatenation of string and integer in python you need to case the integer to string by using str function:

number = 5
text = 'I\'m a string'
numberString = text + str(number)

print(numberString)

result:

I'm a string5

Python concatenate number stored as string

Numbers stored as strings can be converted to int and then concatenated:

number = 5
numberAsString = '5'
numberString = int(numberAsString) + number

print(numberString)

result:

10

Python concatenate two integers

In order to concatenate integers you need to cast them to string:

number = 5
number2 = 1
numberString = str(number) + str(number2)

print(numberString)

result:

51

Python concatenate characters of string with comma

Join method can be used to concatenate all characters in string with a separator:

numbers = ", ".join("123456789")
print(numbers)

result:

1, 2, 3, 4, 5, 6, 7, 8, 9

Frequent errors

If you skip the str function:

number = 5
numberAsString = '5'
numberString = text + number

You may get error:

  • python 3.X:

TypeError: Can't convert 'int' object to str implicitly

  • for python 2.X

TypeError: cannot concatenate 'str' and 'int' objects

If you try to convert non numeric to int you will get

ValueError: invalid literal for int() with base 10: 'a'