Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Operadores de formatação de Strings com % e valores booleanos

Olá, bom dia! Todos bem por aqui?

Antes de tudo, feliz ano novo!

Estou na aula PARA SABER MAIS: FORMATAÇÕES DO PRINT e me surgiu uma dúvida quando cheguei em valores boleanos.

Temos a explicação:

**Uma observação: os operadores de formatação de strings com % não funcionam diretamente com valores booleanos. Uma maneira de lidar com isso é convertendo o valor booleano para uma string antes de usá-lo na formatação com a função str( ). Por exemplo:

x = True print("Valor de x: %s" % str(x))**

Pelo que entendi, e acho que estou errada, esse comando dentro do print com o %str iria converter o valor em string, mas quando na sequência eu digitei type(x), o notebook me retornou a resposta abaixo:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

A dúvida é: se eu pedi pra ele transformar em String, porque me retornou a informação dizendo que o tipo da variável ainda é booleana?

Obrigada desde já!

1 resposta
solução!

A dúvida é bastante comum, mas a explicação é simples! Vamos por partes:

O que o código faz?

x = True: Aqui, você declara a variável x como um valor booleano (True).

str(x): Dentro do comando print, a função str(x) converte o valor da variável x para uma representação em texto ("True").

%s: Esse é um placeholder usado na formatação de strings, que será substituído pelo valor fornecido após o %.

Resultado do código: O print exibe algo como:

Valor de x: True

O que não acontece no código?

A função str(x) não altera o tipo da variável x, mas apenas retorna uma versão em string do valor contido nela. Ou seja, str(x) não modifica x; apenas cria uma string correspondente a ele.

Por que o tipo de x continua sendo booleano?

Após o comando print, o tipo de x não mudou, porque:

x ainda é a variável booleana declarada inicialmente como True. A função str() não altera x; ela só retorna uma representação em string. Se você verificar o tipo de x com type(x) após o print, o retorno será:

<class 'bool'>

Como alterar o tipo de x para string?

Se você quiser que x seja permanentemente convertido para string, precisará reatribuir o valor convertido à variável:

x = str(x)

Depois disso, type(x) retornará:

<class 'str'>

Resumindo:

O comando str(x) converte o valor de x em uma string para uso imediato, mas não altera o tipo original da variável x. Para mudar o tipo de x, é necessário reatribuir o valor convertido.

Espero que tenha esclarecido sua dúvida! =D