Conversões e casting de tipos de dados em Python

Neste artigo, iremos entender quando acontece a conversão de tipo de dados dois tipos de conversão de tipos de dados em Python.

Por
3 min. de leitura

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).

Figura 1.3: funções para conversões de tipos de dados.

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

Por
3 min. de leitura