Explorando os Tipos de Dados no Python
No Python, os tipos de dados desempenham um papel fundamental no desenvolvimento de qualquer aplicação. Eles definem como as informações são armazenadas e manipuladas durante a execução do código. Entre os tipos básicos, destacam-se: int para números inteiros, float para números de ponto flutuante, str para cadeias de caracteres, bool para valores booleanos, e bytes para dados binários. Esses tipos servem como blocos de construção para qualquer programa e permitem maior controle sobre a lógica e o armazenamento de dados.
Principais Tipos de Dados
O tipo int representa números inteiros, como 10 ou -5, enquanto o float lida com números decimais, como 3.14 ou -0.001. Já o tipo str é utilizado para trabalhar com texto, sendo bastante versátil ao permitir a manipulação de palavras, frases e até mesmo caracteres únicos. O tipo bool aceita apenas os valores True ou False, tornando-o essencial para expressar condições e tomadas de decisão. Por fim, o tipo bytes é amplamente usado para representar sequências de dados binários, especialmente úteis em tarefas como comunicação em redes e manipulação de arquivos binários.
Tipos de dados
Numéricos:
Tipo | Exemplo | Descrição |
---|---|---|
int | 50 | Numeros inteiros são utilizados para contar elementos, representação de índices e operações mateáticas |
Float | 10.5 (Dez virgula cinco) | Chamado de Ponto Flutuante pois representa os números reais, ou seja, números com partes decimais, utilizados quando requerem precisão decimal, como taxas ou medições. |
Cadeia de caracteres:
Tipo | Exemplo | Descrição |
---|---|---|
str | “Paulo da Silva” | Representa texto, armazenando uma sequência de caracteres. |
Observação:
String não é um tipo de dado mas um módulo para tratamento de texto.
Contudo é muito comum chamarmos srt de string, o que leva a confundir com um tipo de dado.
1 2 3 4 5 6 7 8 9 10 11 |
import string # Caracteres alfabéticos print(string.ascii_letters) # Digitos print(string.digits) """ Resultado: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789 """ |
Lógico:
Tipo | Exemplo | Descrição |
---|---|---|
bool | True ou False | Representa valores lógicos: True (verdadeiro) ou False (falso). |
Python não é uma linguagem tipada
Perceba que, nas declarações abaixo, o tipo de uma variável não é especificado diretamente. No Python, a variável recebe automaticamente um dado básico, que possui um tipo primário, como int, float, str ou bool. Além disso, ela também pode receber um tipo objeto, como class, function ou dados estruturados. Dessa forma, o Python garante flexibilidade e simplicidade no gerenciamento de variáveis.
1 2 3 4 5 6 7 8 9 10 11 12 |
print('Exemplo tipo de dado "32" - tipo: ',type('32')) print('Exemplo tipo de dado 32 - tipo: ',type(32)) print('Exemplo tipo de dado 32.0 - tipo: ',type(32.0)) print('Exemplo tipo de dado True - tipo: ',type(True)) """ Resultado: Exemplo tipo de dado "32" - tipo: <class 'str'> Exemplo tipo de dado 32 - tipo: <class 'int'> Exemplo tipo de dado 32.0 - tipo: <class 'float'> Exemplo tipo de dado True - tipo: <class 'bool'> """ |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
x = "32" print(type(x)) y = int(x) print(type(y)) z = str(y) print(type(z)) w = True print(type(w)) """ Resultado: <class 'str'> <class 'int'> <class 'str'> <class 'bool'> """ |
O programador precisa estar atento ao tipo da variável ou ao tipo de entrada de uma função.
Python tem crescido muito por sua lingagem concisa.
1 2 3 4 5 6 7 8 |
# Somando Strings resultado = '32' + '1' print(resultado) 321 # Somando Inteiros resultado = 32 + 1 print(resultado) 33 |
Conversões e Manipulação de Dados
As conversões de tipo permitem transformar dados de um tipo para outro de maneira eficiente. Por exemplo, a função int() converte valores numéricos ou strings que representam números em inteiros, enquanto float() realiza a conversão para números decimais. Para transformar um número ou objeto em texto, a função str() é amplamente utilizada. Além disso, as funções list() e set() possibilitam criar listas e conjuntos a partir de iteráveis. Em relação ao tipo bytes, as funções encode() e decode() são fundamentais. Enquanto encode() converte uma string para binário, decode() realiza o processo inverso. Essas conversões garantem flexibilidade e facilitam a manipulação de dados em diferentes contextos.
Com o domínio dos tipos e conversões, é possível o uso consciente dessas ferramentas torna o código mais eficiente e confiável.
- Int() – converte para Inteiro
- float() – converte para Float
- str() – converte para string
- list() – converte conjunto em lista
- set() – converte lista em conjunto
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
print('Exemplo de conversão da str "5" para int - resultado: ',type(int('5'))) print('Exemplo de conversão da str "5" para float - resultado: ',type(float('5'))) print('Exemplo de conversão da int "5" para str - resultado: ',type(str(5))) print('Exemplo de conversão da list ["banana","abacate"] para set - resultado: ',type(set(['banana','abacate']))) print('Exemplo de conversão da set {"banana","abacate"} para list - resultado: ',type(list({'banana','abacate'}))) exemplo_byte = 'Hello'.encode(encoding='utf-8') print('Exemplo de conversão da str "Hello" para byte - resultado: ',type(exemplo_byte)) print('Exemplo de conversão da byte b"Hello" para str - resultado: ',type(exemplo_byte.decode())) """ Resultado: Exemplo de conversão da str "5" para int - resultado: <class 'int'> Exemplo de conversão da str "5" para float - resultado: <class 'float'> Exemplo de conversão da int "5" para str - resultado: <class 'str'> Exemplo de conversão da list ["banana","abacate"] para set - resultado: <class 'set'> Exemplo de conversão da set {"banana","abacate"} para list - resultado: <class 'list'> Exemplo de conversão da str "Hello" para byte - resultado: <class 'bytes'> Exemplo de conversão da byte b"Hello" para str - resultado: <class 'str'> """ |
Tipo Byte
Tipo | Exemplo | Descrição |
---|---|---|
bytes | sequência imutável de números inteiros entre 0 e 255 | Representa dados binários, armazenados como uma sequência de bytes. Usado para trabalhar com dados brutos, como arquivos binários, imagens ou streams de rede. Criado com o prefixo b antes de uma string. |
Byte é uma sequência de 8 bits (bit é a menor unidade de informação em um sistema digital que representa 0 ou 1) agrupados.
É usado como uma unidade padrão para representar dados em sistemas digitais.
Um byte pode armazenar valores inteiros de 0 a 255 (ou -128 a 127 se for com sinal) ou representar um caractere em muitos sistemas de codificação, como ASCII.
Exemplo prático: A letra “A” em ASCII é representada pelo byte 01000001 (65 em decimal).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# Declaração de bytes dados = b"hello world" # Representação binária de "hello world" # Acessando elementos print(dados[0]) # 104 (representação ASCII do 'h') # Convertendo bytes para string texto = dados.decode("utf-8") # Converte de bytes para str print(texto) # "hello world" # Convertendo string para bytes novo_dados = texto.encode("utf-8") print(novo_dados) # b"hello world" """ Resultado: 104 hello world b'hello world' """ |
Conversões com encode e decode
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
str_original = 'Hello' bytes_encoded = str_original.encode(encoding='utf-8') print(type(bytes_encoded)) str_decoded = bytes_encoded.decode() print(type(str_decoded)) print('Encoded bytes =', bytes_encoded) print('Decoded String =', str_decoded) print('str_original equals str_decoded =', str_original == str_decoded) """ Resultado: <class 'bytes'> <class 'str'> Encoded bytes = b'Hello' Decoded String = Hello str_original equals str_decoded = True """ |