No começo dessa série, vimos como transformar uma String num Int ou Float no Python. Agora, desejamos o contrário. Como fazer?
Dentro do Python existem duas formas de transformar um valor qualquer numa string: as funções repr() e str().
A função str() é utilizada para criar representações de valor que as pessoas consigam entender. Já a função repr() é utilizada para criar valores que o interpretador do Python possa utilizar.
A maior parte dos valores, como inteiros, estruturas de listas e dicionários acabam tendo a mesma representação quando se utiliza qualquer uma das funções. Já Floats e Strings são representados de formas diferentes entre as funções.
A única diferença entre as duas funções é a forma que elas apresentam os valores? Na verdade, não. Vamos observar a questão um pouco mais a fundo.
Da documentação oficial do Python, sabemos que repr() e str() são usadas para “representar” um objeto. A str() é considerada uma representação “informal”. A função repr() seria a representação “formal”.
Abaixo mostramos alguns exemplos em que podem ser observadas algumas destas diferenças:
s = 'Hello, world.' str(s) 'Hello, world.' repr(s) "'Hello, world.'" str(1.0/7.0) '0.142857142857' repr(1.0/7.0) '0.14285714285714285'
Esta diferença entre os valores retornados nos exemplos acima pode ser evidenciada dentro do sistema que o retorno padrão da função repr() para um objeto pode ser chamada como um argumento dentro da função eval() e seu retorno seria um objeto válido. Podemos observar isto no exemplo abaixo:
1 | >>> y = ‘a string’ |
2
3 4 5 6 |
>>> repr(y)
“‘a string'” >>> y2 = eval(repr(y)) >>> y == y2 True |
Já o retorno da função str() não se mostra válido. Exemplo abaixo:
1 | >>> y = ‘a string’ |
2
3 4 5 6 7 8 9 10 |
>>> str(y)
‘a string’ >>> eval(str(y)) Traceback (most recent call last): File “<stdin>”, line 1, in <module> File “<string>”, line 1 a string ^ SyntaxError: unexpected EOF while parsing |
Portanto, a representação “formal” do objeto pode ser chamado pela função eval(), e deve retornar o mesmo objeto, se for o caso.
Ela apresenta uma resposta mais resumida do valor do objeto. Com objetos complexos, com vários argumentos, por exemplo, a função repr() retorna um valor difícil de ser analisado. Caso estejamos procurando somente uma “visão rápida”, o melhor a utilizar é a função str().
Use a área de comentários abaixo para compartilhar outras dicas ou dúvidas sobre este assunto! Caso deseje navegar mais em outros assuntos, você, pode conferir nossa galeria de vídeos sobre Python. Abaixo estão alguns exemplos:
Você também pode se inscrever em alguns canais que fazem broadcast em Python, como os a seguir:
Outra maneira interessante de descobrir mais coisas interessantes sobre Python é acessar nossa página de projetos
In 2024 we're witnessing a critical point in democratic technology: the integration of blockchain and…
We’re thrilled to announce an exciting opportunity for you to win not one but two…
Acquiring practical skills is crucial for career advancement and personal growth. Education Ecosystem stands out…
Artificial Intelligence (AI) has been making significant strides in various industries, and the software development…
Another week to bring you the top yield platforms for three of the most prominent…
If you hold a large volume of LEDU tokens above 1 million units and wish…