Teoria

Pra que converter tipos?

Fala aí, galera! Beleza? Hoje eu vim te contar que, em Python, as vezes não dá pra fazer as operações que a gente quer com os tipos de dados que a gente já tem. Lembra que quando a gente usa o operador de divisão (/) em números inteiros, os dados são automaticamente convertidos pra real (com um “.” no número)? Então! Isso acontece porque, geralmente, o resultado da sua divisão vai ser um número não inteiro, e aí Python faz essa conversão automática pra facilitar nossa vida.

Porém, tem casos onde a gente precisa fazer manualmente. Quer ver? Vem comigo! imagina que você quer fazer um programa que pergunta pro usuário um valor numérico, tipo assim:

Se tu executar esse programa, o resultado pode te surpreender! hahaha

Cara, quando o usuário digita a idade, a nossa variável chamada “idade” recebe esse valor digitado, porém, no formato de texto (string). Quando a gente tenta multiplicar por 3 na linha de baixo, o resultado é que o TEXTO é triplicado. Porém, não era isso que a gente esperava, né?

A gente esperava que fosse feita uma operação matemática. Pra fazer operações matemáticas a gente precisa que nossos dados sejam numéricos, e não texto, beleza?!

Nesse caso, como a idade da pessoa com certeza é um número inteiro, vamos converter esse valor pra inteiro.

Obs: a gente vai usar inteiro em vez de real, porque ninguém tem casas decimais na idade! hahaha

Viu?! Agora o resultado vai ser o que a gente espera! Uma operação matemática vai ser feita ali no print, e não uma triplicação de texto.

Repara que a função que a gente usou pra converter a saída da função input() pra inteiro é justamente o nome do tipo, int. Isso acontece em todos os tipos. Olha a tabelinha com ALGUMAS funções de conversão aqui embaixo:

Essa tabelinha mostra algumas das funções, mas não todas. Além disso, a gente ainda não viu todos os tipos que têm nessa tabelinha, mas vamos ver ainda. É importante tu notar que a lógica é a mesma, beleza?

Compatibilidade dos tipos

Também queria que você reparasse que não importa qual o tipo de dado que a gente coloca dentro dessas funções. Desde que seja compatível, vai funcionar! Quer ver? Olha:

A gente converteu o texto “45” pra inteiro (relembrando que tudo que estiver entre aspas é considerado como do tipo texto (string) pro python, beleza?). Aí gente converteu o texto “2” pra um número real e depois a gente converteu o resultado da multiplicação do inteiro 45 pelo real 2.0 pra texto de novo, e uniu com outro texto, “3.14”.

Olha o resultado doido que a gente vai obter depois de executar esse código:

Repara bem que o resultado é a junção de “90.0” com “3.14”.

Mas o que aconteceria se a gente tentasse converter uma palavra pra inteiro?!

Vamos tentar!

Nesse código a gente tá tentando converter um texto pra número inteiro, mas se você tentar executar, vai ver que vai dar erro! Isso é porque Python não sabe como representar “uma-palavra” como número (na verdade, a gente também não sabe hahah).

Então cuidado com isso, viu?

Conversão de string pra float

As suas conversões têm que ser compatíveis. Um dos principais erros que a gente encontra quando sua conversão de tipo é usando número real com vírgula. Olha esse exemplo:

O resultado disso é um erro! Esse código não vai funcionar, porque a gente tá tentando converter pra real um número com “,” (vírgula), mas cara, em os números decimais são representados por pontos “.”, beleza?! Você precisa usar ponto quando for digitar textos com números decimais.

A gente pode fazer várias coisas com as conversões de tipo, mas as principais que a gente vai estar sempre usando são as de números pra texto, com str(), e de texto pra números, com int() e float(), beleza?

Bora fazer exercício! Te espero lá!

Compatibilidade dos tipos