Convertendo número inteiro em string?

1362

Eu quero converter um número inteiro em uma seqüência de caracteres em Python. Estou escrevendo em vão:

d = 15
d.str()

Quando tento convertê-lo em string, ele mostra um erro como intse não tivesse nenhum atributo chamado str.

caipira
fonte

Respostas:

2095
>>> str(10)
'10'
>>> int('10')
10

Links para a documentação:

A conversão para uma string é feita com a str()função embutida, que basicamente chama o __str__()método de seu parâmetro.

Bastien Léonard
fonte
118

Tente o seguinte:

str(i)
Lasse V. Karlsen
fonte
62

Não há conversão de tipo e coerção de tipo no Python. Você precisa converter sua variável de maneira explícita.

Para converter um objeto em string, use a str()função Funciona com qualquer objeto que tenha um método chamado __str__()definido. De fato

str(a)

é equivalente a

a.__str__()

O mesmo se você quiser converter algo em int, float etc.

Andrea Ambu
fonte
esta solução me ajudou, eu estava convertendo uma string alfanumérica em uma string numérica, substituindo letras por seus valores ascii, porém usando diretamente a função str () não estava funcionando, mas __str __ () funcionou. Exemplo (python2.7); s = "14.2.2.10a2" código não ativo: print "" .join ([str (ord (c)) if (c.isalpha ()) else c for c in s]) código de funcionamento: print "" .join ([ord (c) .__ str __ () if (c.isalpha ()) else c for c in s]) Saída esperada: 14.2.2.10972
Jayant
18

Para gerenciar entradas não inteiras:

number = raw_input()
try:
    value = int(number)
except ValueError:
    value = 0
nik
fonte
14
>>> i = 5
>>> print "Hello, world the number is " + i
TypeError: must be str, not int
>>> s = str(i)
>>> print "Hello, world the number is " + s
Hello, world the number is 5
maxaposteriori
fonte
11

No Python => 3.6, você pode usar a fformatação:

>>> int_value = 10
>>> f'{int_value}'
'10'
>>>
Super Nova
fonte
7

Para o Python 3.6, você pode usar o novo recurso f-strings para converter em string e é mais rápido em comparação à função str (); é usado assim:

age = 45
strAge = f'{age}'

Python fornece a função str () por esse motivo.

digit = 10
print(type(digit)) # will show <class 'int'>
convertedDigit= str(digit)
print(type(convertedDigit)) # will show <class 'str'>

Para obter respostas mais detalhadas, consulte este artigo: Convertendo Python Int em String e Python String em Int

Mohamed Makkaoui
fonte
6

A maneira mais decente na minha opinião é ``.

i = 32   -->    `i` == '32'
Nikolas
fonte
3
Observe que isso é equivalente a repr(i), portanto será estranho por muito tempo. (Try i = `2 ** 32`; print i)
16
Isso foi preterido no python 2 e completamente removido no python 3, portanto, não sugiro mais usá-lo. docs.python.org/3.0/whatsnew/3.0.html#removed-syntax
teeks99
6

Pode usar %sou.format

>>> "%s" % 10
'10'
>>>

(OU)

>>> '{}'.format(10)
'10'
>>>
Super Nova
fonte
5

Para alguém que deseja converter int em string em dígitos específicos, o método abaixo é recomendado.

month = "{0:04d}".format(localtime[1])

Para obter mais detalhes, consulte a pergunta Número de exibição do estouro de pilha com zeros à esquerda .

Eugene
fonte
4

Com a introdução do f-strings no Python 3.6, isso também funcionará:

f'{10}' == '10'

Na verdade, é mais rápido do que ligar str(), ao custo da legibilidade.

De fato, é mais rápido que a %xformatação de strings e .format()!

Alec Alameddine
fonte