Why cant python concatenate str and int objects?

I have this python program that adds strings to integers:

a = raw_input("Enter a: ")
b = raw_input("Enter b: ")
print "a + b as strings: " + a + b
a = int(a)
b = int(b)
c = a + b
str(c)
print "a + b as integers: " + c

I get this error:

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

How can I add strings to integers?

Why cant python concatenate str and int objects?

wjandrea

24.5k8 gold badges53 silver badges73 bronze badges

asked Aug 7, 2012 at 10:35

0

There are two ways to fix the problem which is caused by the last print statement.

You can assign the result of the str(c) call to c as correctly shown by @jamylak and then concatenate all of the strings, or you can replace the last print simply with this:

print "a + b as integers: ", c  # note the comma here

in which case

str(c)

isn't necessary and can be deleted.

Output of sample run:

Enter a: 3
Enter b: 7
a + b as strings:  37
a + b as integers:  10

with:

a = raw_input("Enter a: ")
b = raw_input("Enter b: ")
print "a + b as strings: " + a + b  # + everywhere is ok since all are strings
a = int(a)
b = int(b)
c = a + b
print "a + b as integers: ", c

answered Aug 7, 2012 at 10:38

LevonLevon

132k33 gold badges197 silver badges186 bronze badges

0

str(c) returns a new string representation of c, and does not mutate c itself.

c = str(c) 

is probably what you are looking for

answered Aug 7, 2012 at 10:37

Why cant python concatenate str and int objects?

jamylakjamylak

123k29 gold badges227 silver badges227 bronze badges

5

If you want to concatenate int or floats to a string you must use this:

i = 123
a = "foobar"
s = a + str(i)

Wooble

85.6k12 gold badges103 silver badges129 bronze badges

answered Aug 7, 2012 at 10:37

ThargorThargor

1,86214 silver badges24 bronze badges

c = a + b 
str(c)

Actually, in this last line you are not changing the type of the variable c. If you do

c_str=str(c)
print "a + b as integers: " + c_str

it should work.

answered Oct 25, 2013 at 9:38

Apart from other answers, one could also use format()

print("a + b as integers: {}".format(c))

For example -

hours = 13
minutes = 32
print("Time elapsed - {} hours and {} minutes".format(hours, minutes))

will result in output - Time elapsed - 13 hours and 32 minutes

Check out docs for more information.

answered Jul 21, 2018 at 15:57

Why cant python concatenate str and int objects?

AnanthAnanth

2,45327 silver badges38 bronze badges

You can convert int into str using string function:

user = "mohan"

line = str(50)

print(user + "typed" + line + "lines")

Hugo

26.1k7 gold badges80 silver badges95 bronze badges

answered Jul 25, 2017 at 6:52

1

The easiest and least confusing solution:

a = raw_input("Enter a: ")
b = raw_input("Enter b: ")
print "a + b as strings: %s" % a  + b
a = int(a)
b = int(b)
c = a + b
print "a + b as integers: %d" % c

I found this on http://freecodeszone.blogspot.com/

Why cant python concatenate str and int objects?

Adriaan

17.6k7 gold badges37 silver badges71 bronze badges

answered Jun 26, 2016 at 11:28

ShekharShekhar

751 silver badge1 bronze badge

I also had the error message "TypeError: cannot concatenate 'str' and 'int' objects". It turns out that I only just forgot to add str() around a variable when printing it. Here is my code:

def main():
	rolling = True; import random
	while rolling:
		roll = input("ENTER = roll; Q = quit ")
		if roll.lower() != 'q':
			num = (random.randint(1,6))
			print("----------------------"); print("you rolled " + str(num))
		else:
			rolling = False
main()

I know, it was a stupid mistake but for beginners who are very new to python such as myself, it happens.

answered Dec 10, 2016 at 23:20

This is what i have done to get rid of this error separating variable with "," helped me.

# Applying BODMAS 
arg3 = int((2 + 3) * 45 / - 2)
arg4 = "Value "
print arg4, "is", arg3

Here is the output

Value is -113

(program exited with code: 0)

answered Sep 7, 2017 at 8:59

Why cant python concatenate str and int objects?

Can you concatenate str and int in Python?

In most other programming languages, if we concatenate a string with an integer (or any other primitive data types), the language takes care of converting them to a string and then concatenates it. However, in Python, if you try to concatenate a string with an integer using the + operator, you will get a runtime error.

Can you concatenate a string and an int?

To concatenate a string to an int value, use the concatenation operator. Here is our int. int val = 3; Now, to concatenate a string, you need to declare a string and use the + operator.

Why can't I concatenate in Python?

There are a few programming languages, like JavaScript, which allow you to concatenate strings and integers together. In Python, you cannot do this. If you want to concatenate a string and an integer, you've got to convert the integer to a string first before you concatenate it to a string.

How do you concatenate objects and strings in Python?

Python String Concatenation.
Using + operator..
Using join() method..
Using % operator..
Using format() function..
Using f-string (Literal String Interpolation).