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.

Avatar


25 de janeiro3 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

Avatar


25 de janeiro3 min. de leitura