Tipos em Python
Tags: beginners, braziliandevs, python
Published: 2024-03-21 06:08:46

Estou fazendo um bootcamp com foco em python pela DIO e decidi compartilhar um pouco do conteúdo que estou aprendendo/revendo (como eu já programo em python a um tempo muitas coisas são revisitas).

### Tipos de dados

Os tipos de dados definem as características e comportamentos de um valor para o interpretador.

IMPORTANTE: É importante entender que em python todas as variáveis são objetos e sendo objetos elas tem seus métodos.

Python é uma linguagem de tipagem dinâmica, o que significa que você pode modificar o tipo de uma variável sem fazer cerimônia como:

```
variable = 10 
variable = "now is a string"

```
Como visto no exemplo acima nem precisa citar qual é o tipo como em outras linguagens como C# que seria algo assim:

```
int number = 10;
float floatNumber = 5.5f;

```
Ok, voltando ao python, os seus tipos:

Texto -> str
Numérico -> int, float, complex

int são os números inteiros tais como: 1, 2, 3

float são números com ponto flutuante tais comos: 0.1, 0.2, 3.14159265359

PERA, algo novo para mim, o que é um complex? certamente não é algo do dia a dia, a primeira coisa que fiz ao ver isso foi perguntar ao Chat GPT. Segue a conversa abaixo::

Me: o que é um complex em python?

ChatGPT

Em Python, um complex é um tipo de dado numérico que representa um número complexo. Um número complexo é composto por uma parte real e uma parte imaginária, onde a parte imaginária é multiplicada pelo número imaginário "i", que é a raiz quadrada de -1.

Em Python, os números complexos são representados pela seguinte sintaxe:

```
x = <parte real> + <parte imaginária>j
```
Onde <parte real> e <parte imaginária> são números reais, e j representa a unidade imaginária. Por exemplo:

```
z = 3 + 4j
```
Neste exemplo, z é um número complexo com parte real 3 e parte imaginária 4. Python fornece várias funções e operações para trabalhar com números complexos, incluindo operações aritméticas, como adição, subtração, multiplicação e divisão, bem como funções específicas, como abs() para calcular o módulo (ou magnitude) de um número complexo.

OK tendo a explicação de que o tipo complex permite trabalhar com números imaginários podemos seguir adiante.
 
Sequência -> list, tuple, range
Simplificando:
 Listas = mutáveis
 Tuplas = imutáveis
 range = A função range do Python gera uma lista de números que geralmente são usados ​​em muitas situações para iteração, como no loop for ou em muitos outros casos.

Mapa -> dict 
Dicionário basicamente uma tabela de chave valor

```
dictionary = {1:"primeiro"} // o 1 é a chave  o "primeiro" o valor

```
Coleção -> set, frozenset

Um set é basicamente uma coleção que não permite valores duplicados, o que pode ser bastante útil.

Agora o frozenset eu realmente não uso no dia dia - após uma pesquisa descobrir que é um set só que imutável (como o nome meio que já diz)

Booleano -> bool
Pode assumir os valores os valores True (verdadeiro) ou False (falso)

Binários - bytes, bytearray, memoryview

O tipo bytes em Python representa uma sequência imutável de bytes. Ele é usado para armazenar dados binários, como imagens, arquivos de áudio, ou qualquer outro tipo de dados que não sejam de texto.

O tipo bytearray é semelhante ao tipo bytes, mas é mutável, o que significa que seu conteúdo pode ser alterado após a criação.

O tipo memoryview em Python permite acessar o conteúdo de objetos de bytes (ou outros objetos de buffer) sem fazer cópias desnecessárias na memória.
Ele fornece uma interface de baixo nível para acessar os dados armazenados em um objeto de buffer, como um objeto bytes ou bytearray, sem a necessidade de converter o objeto inteiro em outro tipo de dados.