Conversão de Tipos de Dados em Python: Técnicas Essenciais

Em Python, a conversão de tipos de dados é frequentemente necessária ao processar informações de fontes diverass ou formatar saídas. O idioma suporta dois modos principais: conversão implícita, onde o interpretador realiza ajustes automáticos, e conversão explícita, que requer intervenção manual via funções dedicadas.

Conversão Implícita (Promoção de Tipo)

Este processo ocorre durante operações aritméticas quando operandos possuem tipos distintos. Python eleva automaticamente o tipo de menor hierarquia para o tipo sueprior, evitando perda de precisão. A interação entre inteiros (int) e flutuantes (float) é um caso clássico.

# Demonstração de promoção automática de tipo
valor_inteiro = 456
valor_decimal = 3.1415

# A soma resulta em um float devido à promoção
resultado = valor_inteiro + valor_decimal

print("Tipo de valor_inteiro:", type(valor_inteiro))  # Saída: <class>
print("Tipo de valor_decimal:", type(valor_decimal))  # Saída: <class>
print("Resultado da operação:", resultado)  # Saída: 459.1415
print("Tipo do resultado:", type(resultado))  # Saída: <class>
</class></class></class>

Contudo, essa conversão automática não se estende a todos os cenários. Tentar combinar um número com uma string, por exemplo, levanta uma exceção TypeError.

# Cenário incompatível: inteiros e strings não se combinam diretamente
quantidade = 100
codigo = "ABC123"

# A linha seguinte causaria um erro de tipo:
# print(quantidade + codigo)

Conversão Explícita

Quando o desenvolvedor precisa garantir uma transformação específica, utiliza funções de conversão integradas. Essas funções permitem alterar o tipo de um valor de forma controlada.

Conversão para Tipo Inteiro

a = int(3)         # Resultado: 3
b = int(9.7)       # Resultado: 9 (truncamento)
c = int("42")      # Resultado: 42
d = int("0b1010", 2)  # Resultado: 10 (conversão de binário)

Conversão para Tipo Flutuante

e = float(7)       # Resultado: 7.0
f = float(2.718)   # Resultado: 2.718
g = float("3.14")  # Resultado: 3.14
h = float("1e-3")  # Resultado: 0.001

Conversão para Tipo String

i = str(100)       # Resultado: '100'
j = str(3.14159)   # Resultado: '3.14159'
k = str(True)      # Resultado: 'True'
l = str([1, 2, 3]) # Resultado: '[1, 2, 3]'

A conversão explícita resolve o problema anterior, permitindo a operação entre tipos disitntos após a devida transformação.

numero_a = 250
numero_b_texto = "150"

print("Tipo inicial de numero_a:", type(numero_a))  # Saída: <class>
print("Tipo inicial de numero_b_texto:", type(numero_b_texto))  # Saída: <class>

# Convertendo a string para inteiro
numero_b = int(numero_b_texto)

print("Tipo após conversão de numero_b:", type(numero_b))  # Saída: <class>

# Operação agora válida
soma_total = numero_a + numero_b

print("Resultado da soma:", soma_total)  # Saída: 400
print("Tipo da soma:", type(soma_total))  # Saída: <class>
</class></class></class></class>

Funções de Conversão Incorporadas

Além das funções básicas, Python oferece um conjunto diversificado para manipulação de tipos:

  • int(x [,base]): Converte x para inteiro, opcionalmente especificando a base numérica.
  • float(x): Converte x para ponto flutuante.
  • complex(real [,imag]): Constrói um número complexo.
  • str(x): Gera a representação em string do objeto x.
  • repr(x): Produz uma string que representa oficialmente o objeto x.
  • eval(expression): Interpreta e executa uma expressão Python contida em uma string.
  • tuple(iterable): Converte um iterável em uma tupla.
  • list(iterable): Converte um iterável em uma lista.
  • set(iterable): Cria um conjunto mutável a partir de um iterável.
  • dict(mapping): Constrói um dicionário; o argumento deve ser um mapeamento ou sequência de pares chave-valor.
  • frozenset(iterable): Cria um conjunto imutável.
  • chr(i): Converte um inteiro (ponto de código Unicode) em um caractere.
  • ord(c): Retorna o ponto de código Unicode de um caractere.
  • hex(i): Converte um inteiro em sua representação hexadecimal em string.
  • oct(i): Converte um inteiro em sua representação octal em string.

Tags: Python data types Type Conversion int float

Publicado em 6-20 19:56