In Python, we normally perform string concatenation using the +
operator. The +
operator, however as we know, is also used to add integers or floating-point numbers.
So what would happen if we have a string and an int on both sides of the operand?
Since Python is a dynamically typed language, we would not face any error during compilation, but rather, we get a Runtime Error. (More specifically, a TypeError exception is raised)
The below snippet proves this:
a = "Hello, I am in grade "
b = 12
print(a + b)
Output
Traceback (most recent call last):
File "concat.py", line 5, in <module>
print(a + b)
TypeError: can only concatenate str (not "int") to str
So, since we cannot directly concatenate an integer with a string, we need to manipulate the operands so that they can be concatenated. There are multiple ways of doing this.
1. Using str()
We can convert the integer to a string, via the str()
function. Now, the new string can now be concatenated with the other string to give the Output;
print(a + str(b))
Output
Hello, I am in grade 12
This is the most common way to convert an integer to a string.
But, we can use other methods as well.
2. Using format()
a = "Hello, I am in grade "
b = 12
print("{}{}".format(a, b))
The output remains the same as before.
3. Using ‘%’ format specifier
a = "Hello, I am in grade "
b = 12
print("%s%s" % (a, b))
While we can specify that both a
and b
are strings, we can also use C-style format specifiers (%d
, %s
) to concatenate an integer with a string.
print('%s%d' % (a,b))
The output remains the same for the above code.
4. Using f-strings
We can use Python f-strings on Python 3.6 or above to concatenate an integer with a string.
a = "Hello, I am in grade "
b = 12
print(f"{a}{b}")
5. Printing the string using print()
If we want to directly print the concatenated string, we can use print()
to do the concatenation for us.
a = "Hello, I am in grade "
b = 12
print(a, b, sep="")
We join a
and b
using a null string separator (sep
), since the default separator for print()
is a space (” “).
Conclusion
In this article, we learned how to concatenate an integer to a string using various methods.
References
- StackOverflow Question on Concatenation of string and int
- JournalDev article on Concatenation of string and int