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.

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.



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.


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

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

11

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

>>> int_value = 10
>>> f'{int_value}'
'10'
>>>

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


6

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

i = 32   -->    `i` == '32'

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'
>>>


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()!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.