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?

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

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

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 //freecodeszone.blogspot.com/

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

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].

Chủ Đề