Fala, meus consagrados! Tudo beleza com vocês?
Neste artigo, iremos entender quando acontece a conversão de tipo de dados dois tipos de conversão de tipos de dados em Python.
Teoria
A conversão de tipo de dados acontece quando um tipo é convertido em outro. Em Python, podem acontecer dois tipos de conversão:
- Implícito; e
- Explícito.
A conversão implícita acontece quando um tipo de dados é convertido automaticamente para outro tipo, por exemplo, quando um tipo int é convertido para um tipo maior como float.
Exemplo:
Veja, meu(minha) caro(a), que a variável x é do tipo int, a variável y é do tipo float. A variável z, no caso, recebe a soma de x mais y. Para acontecer isso, a linguagem Python sempre converte tipos de dados menores (no exemplo, o tipo int) em tipos de dados maiores (no exemplo, o tipo float) para evitar a perda de dados.
No final, é do tipo float o valor da soma de um número tipo int mais um número do tipo float. Por isso, a variável z é do tipo float.
Agora, veja o que acontece se fizermos uma operação entre variável do tipo int com uma variável do tipo str:
No exemplo acima, tentamos fazer uma operação com as variáveis x (do tipo int) e y (do tipo str). Porém, Python não foi capaz de fazer a conversão implícita nessa situação.
Nesse caso, é necessário fazer uma conversão explícita. Nesse tipo de conversão, o programador converte o tipo de dados de um objeto no tipo de dados necessário. Para isso, a linguagem Python disponibiliza algumas funções, tais como:
- int()
- float()
- complex()
- str()
A conversão explícita também é conhecida como casting de tipos de dados, pois o programador converte (altera) o tipo de dados dos objetos.
Sintaxe:
<tipo de dados necessário> (expressão)
Então, corrigindo o exemplo anterior, temos:
Agora a variável y receber o valor string “10” convertido explicitamente para o tipo int (y = int(“10”)). A variável z então pode receber a operação entre duas variáveis do tipo int (no caso, a operação de soma).
Mas podemos corrigir de uma outra forma:
No exemplo acima, a variável x receber o valor inteiro 10 convertido explicitamente para o tipo str (x = str(10)). A variável z então pode receber a operação entre duas variáveis do tipo str (no caso, a operação de concatenação).
A função int() constrói um número inteiro a partir de:
- Um literal inteiro;
- Um literal de ponto flutuante;
- Arredondando para baixo, para o número inteiro anterior;
- Um literal de string;
- Desde que a string represente um número inteiro.
Exemplos:
Sobre os exemplos acima, temos algumas observações:
- Na linha 4, o valor float 1.84 foi arredondado para baixo;
- O que fez a variável x receber o valor int 1;
- Não há possibilidade do tipo complexo para o tipo int;
- O que gerou erro na linha 10.
A função float() constrói um número de ponto flutuante a partir de:
- Um literal inteiro;
- Um literal de ponto flutuante; ou
- Um literal de string;
- Desde que a string represente um número de ponto flutuante ou um inteiro.
Exemplos:
Sobre os exemplos do uso da função float, temos algumas observações:
- Na linha 1, o valor int 15 foi convertido para o valor de ponto flutuante 15.0;
- Na linha 7, a string “3”, que representaria um valor int, foi convertido para o valor de ponto flutuante 3.0;
- Não há possibilidade do tipo complexo para o tipo float;
- O que gerou erro na linha 13.
A função complex() constrói um número complexo a partir de:
- Um literal inteiro;
- Um literal de ponto flutuante; ou
- Um literal de string;
- Desde que a string represente um número de ponto flutuante ou um inteiro.
Exemplos:
A função str() constrói uma string a partir de uma ampla variedade de tipos de dados, incluindo:
- Literais de string;
- Literais inteiros; ou
- Literais de ponto flutuante.
Exemplos:
Questões de concursos
[Quadrix 2019 CREA/TO – Analista de Sistemas] Quanto aos conceitos e às técnicas de programação de computadores, julgue o item.
Em um programa escrito em linguagem Python, o comando de atribuição x = int(5.9) fará com que a variável x passe a armazenar um valor inteiro igual a 6.
Comentários:
Vimos que a função int() constrói um número inteiro a partir de um literal de ponto flutuante e o arredondamento acontece para baixo, para o número inteiro anterior:
Então o erro da questão é que o valor seria 5 no resultado da função int() aplicada no valor de ponto flutuante 5.9.
Gabarito: ERRADO.
[CESPE/CEBRASPE 2013 MPOG – Tecnologia da Informação] A expressividade do código é uma característica importante no desenvolvimento e manutenção de um software. Python e Ruby são exemplos de linguagens que apresentam essa qualidade. Acerca dessas linguagens, julgue os itens subsequentes.
Em Python, o comando int(“1”) cria um objeto do tipo int, que recebe 1 como parâmetro no seu construtor.
Comentários:
Outra questão sobre a função int(). Neste caso, temos a conversão de um valor string “1” para um valor inteiro 1.
Gabarito: CERTO.
Então é isso!
[]s e até a próxima!
_________________________
Professor Rogerão Araújo