with - Python: TypeError: não é possível concatenar objetos 'str' e 'int'




python with django pdf (6)

Esta questão já tem uma resposta aqui:

Eu tenho este programa python que adiciona seqüências de caracteres para números inteiros:

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

Eu recebo este erro:

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

Como posso adicionar strings a inteiros?


A solução mais fácil e menos confusa:

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

Eu encontrei isso em http://freecodeszone.blogspot.com/


Além de outras respostas, também é possível usar format()

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

Por exemplo -

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

resultará na saída - Time elapsed - 13 hours and 32 minutes


Existem duas maneiras de corrigir o problema causado pela última declaração de print .

Você pode atribuir o resultado da chamada str(c) para c conforme mostrado corretamente por @jamylak e, em seguida, concatenar todas as strings, ou pode substituir a última print simplesmente por:

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

Nesse caso,

str(c)

não é necessário e pode ser excluído.

Saída da amostra de execução:

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

com:

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

Isto é o que eu fiz para me livrar desse erro, separando a variável com "," me ajudou.

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

Aqui está a saída

O valor é de -113

(programa encerrado com código: 0)


Você pode converter int em str usando a função string:

user = "mohan"

line = str(50)

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

str(c) retorna uma nova representação de string de c , e não altera o próprio c .

c = str(c) 

é provavelmente o que você está procurando





integer