Python supports string concatenation using + operator. In most of the programming languages, if we concatenate a string with an integer or any other primitive data types, the language takes care of converting them to string and then concatenate it. However, in Python, if you try to concatenate string and int using + operator, you will get a runtime error.
Python Concatenate String and int
Let’s look at a simple example to concatenate string and int using + operator.
s = 'Year is '
y = 2018
print(s + y)
Output:
Traceback (most recent call last):
File "/Users/pankaj/Documents/github/journaldev/Python-3/basic_examples/strings/string_concat_int.py", line 5, in <module>
print(s + y)
TypeError: can only concatenate str (not "int") to str
So how to concatenate string and int in Python? There are various other ways to perform this operation.
Using str() function
The easiest way is to convert int to a string using str() function.
print(s + str(y))
Output: Year is 2018
Using % Operator
print("%s%s" % (s, y))
Using format() function
We can use string format() function too for concatenation of string and int.
print("{}{}".format(s, y))
Using f-strings
If you are using Python 3.6 or higher versions, you can use f-strings too.
print(f'{s}{y}')
num = ([3,4,3,2,1])
print(reduce(lambda x,y: x * 10 + y ,num))
34321
it works fine but takes too much time for instance if we have to convert integer to string 200 times , you would be able to notice the time taken to execute the code. How can we deal with that to make our code more efficient?
Write a python program that asks the user how many coins of various types they have, and then prints the total amount of money in rupees.
a1 = int(input(“How many 1 Rupee coins do you have? : “))
a2 = int(input(“How many 2 Rupee coins do you have? : “))
a3 = int(input(“How many 5 Rupee coins do you have? : “))
a4 = int(input(“How many 10 Rupee coins do you have? : “))
Total_Money = (a1*1)+(a2*2)+(a3*5)+(a4*10)
print(“{}{}{}”.format(“User have “,Total_Money,” rupees.”))
Hi Please just add str to you output and you get result like below
print(“{}{}{}”.format(“User have “, str(Total_Money),” rupees.”))
Hey Pankaj, thanks for sharing this article. This helped me to have a better understanding of formats used with print function