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 c
zoals correct weergegeven door @jamylak en vervolgens alle tekenreeksen samenvoegen, of u kunt de laatste print
eenvoudig 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 c
zelf.
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 int
omzetten in str
met 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)