CodeGym /Cursos /Python SELF PT /Conversão de tipos de dados

Conversão de tipos de dados

Python SELF PT
Nível 5, Lição 2
Disponível

2.1 Definindo o tipo

Às vezes, em um determinado ponto do código, não sabemos exatamente quais dados estão armazenados na variável. Para isso, no Python existe a função type(), que é usada para determinar o tipo do objeto.

É uma função embutida que retorna o tipo do objeto especificado, o que pode ser útil para depuração, validação de dados ou durante a implementação de lógica, dependendo dos tipos de dados.

Como a função type() funciona

Quando você chama type(x), Python retorna um objeto especial type, que representa o tipo da variável x. Por exemplo:


x = 1
print(type(x))  # Vai exibir: <class 'int'>

x = "olá"
print(type(x))  # Vai exibir: <class 'str'>

x = [1, 2, 3]
print(type(x))  # Vai exibir: <class 'list'>

Note que a palavra class será exibida na tela. Isso porque até mesmo os tipos int, str, list e outros também são classes, só que embutidas — você não precisa declará-los, eles vêm junto com o Python.

Aplicação Prática

A função type() é muitas vezes utilizada em cenários onde é necessário distinguir ações com base no tipo de dado.

  • Diferentes ações podem ser executadas dependendo do tipo da variável.
  • Em funções e métodos, para assegurar a correção dos tipos dos argumentos.

Se você quer se certificar de que uma variável contém um número, escreva um código parecido com este:


arg = 123
if type(arg) == int:
    print(arg + 10)  # Vai exibir: 133               

Um exemplo mais prático, onde verificamos o tipo do objeto que está armazenado na variável:


arg = "123"
if type(arg) == int:
    print(arg + 10)  # Isso não será executado, pois arg é uma string
elif type(arg) == str:
    print(arg + " mundo")  # Vai exibir: 123 mundo
else:
    print("Tipo desconhecido")               

2.2 Definindo explicitamente o tipo

Em Python, a definição explícita do tipo de um objeto é feita usando funções de conversão de tipo, como int(), float(), str(), tuple() e outras. Essas funções permitem definir um tipo específico e converter dados de um tipo para outro, o que é útil para processamento de entrada do usuário, execução de operações matemáticas ou manipulação de strings e coleções de dados.

Exemplos de funções de conversão de tipo

int(): Converte dados em um número inteiro. Já nos deparamos várias vezes com esta função e sabemos que, se passarmos uma string com um número, int() irá convertê-la para o número inteiro correspondente.


num = int("123")  # num será o número inteiro 123               

float(): Outra função familiar. Converte dados em um número de ponto flutuante.


num = float("123.45")  # num será 123.45               

str(): Converte qualquer objeto Python em uma representação em string.


s = str(10.5)  # s será '10.5'               

tuple(): Converte uma sequência em uma tupla.


t = tuple([1, 2, 3])  # t será (1, 2, 3)               

list(): Converte um objeto iterável (por exemplo, uma string ou uma tupla) em uma lista. Um objeto iterável é um objeto que pode ser percorrido sequencialmente, como strings, listas ou tuplas.


l = list("abc")  # l será ['a', 'b', 'c']               

dict(): Cria um dicionário a partir de uma sequência de pares chave-valor.


d = dict([(1, 'a'), (2, 'b')])  # d será {1: 'a', 2: 'b'}

Sobre dicionários e tuplas, vamos falar um pouquinho mais tarde, mas acho que deu pra pegar a ideia geral: se você precisar explicitamente definir algum tipo, pode sempre usar as funções acima mencionadas.

2.3 Conversão de tipos

Em Python, a conversão explícita (ou casting) de tipos permite que os programadores controlem e alterem o tipo de dados das variáveis. Isso pode ser útil para garantir a compatibilidade dos dados em diferentes operações ou para corrigir tipos de dados obtidos a partir de entradas do usuário ou durante leituras de arquivos. Basicamente, conversão de tipos e casting significam a mesma coisa — o processo de alterar o tipo de dados de um objeto para outro tipo.

Já estamos um pouco familiarizados com a conversão explícita de tipos. Ela é feita em Python através de funções embutidas, como int(), float(), str(), tuple(), list(), dict(), set() e outras.

Para reforçar, vamos dar mais alguns exemplos:

Função Descrição Exemplo de entrada Exemplo de saída
int() Conversão para número inteiro int("10") 10
float() Conversão para número de ponto flutuante float("20.5") 20.5
str() Conversão para string str(15) "15"
tuple() Conversão para tupla tuple([1, 2, 3]) (1, 2, 3)
list() Conversão para lista list("abc") ['a', 'b', 'c']
dict() Criação de dicionário a partir de pares chave-valor dict([(1, 'one'), (2, 'two')]) {1: 'one', 2: 'two'}
set() Criação de conjunto a partir de lista set([1, 1, 2, 2, 3, 3]) {1, 2, 3}

Exemplos de uso

A conversão explícita de tipos é utilizada em muitos cenários, incluindo:

  • Processamento de entrada do usuário: Garantindo que os dados inseridos correspondam ao tipo de dados esperado.
  • Interoperabilidade de dados: Quando dados de diferentes fontes ou APIs precisam ser combinados ou comparados.
  • Tratamento de erros: Prevenção de erros de tempo de execução convertendo dados para o tipo apropriado antes de realizar operações.

Melhores práticas e advertências

A conversão explícita de tipos deve ser usada conscientemente para evitar perda de dados (por exemplo, ao converter float para int) ou erros de conversão (por exemplo, tentativa de converter uma string não numérica em um número).

Também é importante lembrar que algumas conversões podem não ser óbvias e levar a resultados inesperados, o que requer uma verificação cuidadosa dos dados. Por exemplo, converter int para bool e vice-versa pode ter efeitos inesperados :)

2
Tarefa
Python SELF PT, nível 5, lição 2
Bloqueado
Mistura
Mistura
2
Tarefa
Python SELF PT, nível 5, lição 2
Bloqueado
Tudo não é tão simples.
Tudo não é tão simples.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION