A tipagem dinâmica do Python oferece flexibilidade, mas às vezes você precisa determinar o tipo de uma variável em tempo de execução. Este artigo explora métodos eficientes para verificar tipos de variáveis em Python.
Sumário
- Tipos de Dados Python
- Métodos de Verificação de Tipo
- Usando a função
type()
- Usando a função
isinstance()
- Lidando com Erros de Tipo
Tipos de Dados Python
Compreender os tipos de dados fundamentais do Python é crucial para uma verificação de tipo eficaz. Os principais tipos integrados incluem:
- Inteiros (
int
): Números inteiros (e.g., 10, -5, 0) - Números de ponto flutuante (
float
): Números com pontos decimais (e.g., 3.14, -2.5, 0.0) - Strings (
str
): Sequências de caracteres (e.g., “Olá”, ‘Python’) - Booleanos (
bool
):True
ouFalse
- Listas (
list
): Sequências ordenadas e mutáveis (e.g., [1, 2, 3]) - Tuplas (
tuple
): Sequências ordenadas e imutáveis (e.g., (1, 2, 3)) - Dicionários (
dict
): Pares chave-valor (e.g., {‘nome’: ‘Alice’, ‘idade’: 30}) - Conjuntos (
set
): Coleções não ordenadas de itens únicos (e.g., {1, 2, 3}) - NoneType (
None
): Representa a ausência de um valor
Métodos de Verificação de Tipo
Python oferece várias maneiras de verificar tipos de variáveis. As mais comuns são as funções type()
e isinstance()
.
Usando a função type()
A função type()
retorna diretamente o tipo de um objeto.
x = 10
y = 3.14
z = "Olá"
a = True
minha_lista = [1, 2, 3]
print(type(x)) # Saída: <class 'int'>
print(type(y)) # Saída: <class 'float'>
print(type(z)) # Saída: <class 'str'>
print(type(a)) # Saída: <class 'bool'>
print(type(minha_lista)) # Saída: <class 'list'>
Usando a função isinstance()
isinstance()
oferece mais flexibilidade, especialmente com herança. Verifica se um objeto é uma instância de uma classe ou de sua subclasse.
x = 10
y = 3.14
z = "Olá"
print(isinstance(x, int)) # Saída: True
print(isinstance(y, float)) # Saída: True
print(isinstance(z, str)) # Saída: True
print(isinstance(x, (int, float))) # Saída: True (verifica se x é um int OU um float)
isinstance()
é útil para verificar vários tipos ou quando se trabalha com classes personalizadas.
Lidando com Erros de Tipo
Tipos de variáveis inesperados podem levar a erros. Um código robusto inclui tratamento de erros:
def processar_dados(dados):
try:
if isinstance(dados, int):
# Processar dados inteiros
resultado = dados * 2
elif isinstance(dados, str):
# Processar dados de string
resultado = dados.upper()
else:
raise TypeError("Tipo de dado não suportado")
return resultado
except TypeError as e:
print(f"Erro: {e}")
return None
print(processar_dados(10)) # Saída: 20
print(processar_dados("olá")) # Saída: OLÁ
print(processar_dados([1,2,3])) # Saída: Erro: Tipo de dado não suportado
# None