Python: TypeError: kan ‘str’ en ‘int’ objecten niet samenvoegen

Ik heb dit python-programma dat strings toevoegt aan gehele getallen:

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

Ik krijg deze foutmelding:

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

Hoe kan ik strings toevoegen aan gehele getallen?


Antwoord 1, autoriteit 100%

Er zijn twee manieren om het probleem op te lossen dat wordt veroorzaakt door de laatste print-instructie.

U kunt het resultaat van de str(c)-aanroep toewijzen aan czoals correct weergegeven door @jamylak en vervolgens alle tekenreeksen samenvoegen, of u kunt de laatste printeenvoudig hiermee:

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

in welk geval

str(c)

is niet nodig en kan worden verwijderd.

Uitvoer van proefrun:

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

met:

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

Antwoord 2, autoriteit 45%

str(c)Retourneert een Nieuwe String-weergave van c, en muteert niet czelf.

c = str(c) 

is waarschijnlijk wat u zoekt


3, Autoriteit 12%

Als u int te concateren of drijft naar een reeks, moet u dit gebruiken:

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

4, Autoriteit 3%

c = a + b 
str(c)

In deze laatste regel verandert u het type van de variabele c. Als u

doet

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

het zou moeten werken.


5, Autoriteit 2%

Afgezien van andere antwoorden, kan men ook format()

gebruiken

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

Bijvoorbeeld –

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

resulteert in uitvoer – Time elapsed - 13 hours and 32 minutes

Uitchecken docs voor meer informatie.


6

U kunt intomzetten in strmet behulp van stringfunctie:

user = "mohan"
line = str(50)
print(user + "typed" + line + "lines")

7

De eenvoudigste en minst verwarrende oplossing:

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

Ik heb dit gevonden op http://freecodeszone.blogspot.com/


8

Dit is wat ik heb gedaan om deze fout te verwijderen die variabele scheidt met “,” hielp me.

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

Hier is de uitvoer

Waarde is -113

(Programma afgesloten met code: 0)

Other episodes