# Tipos de dados Python: explicamos os principais tipos

Os tipos de dados do Python são essenciais para representar, processar e utilizar dados. Ao utilizar **diferentes tipos de dados**, será possível armazenar informações de forma eficiente, otimizando assim o desempenho da sua aplicação.

## O que são os tipos de dados Python?

Os tipos de dados do Python são **categorizações de dados** que representam diferentes tipos de dados. Esses dados definem como as informações podem ser armazenadas e manipuladas. O Python tem muitos tipos de dados, entre os quais encontramos números inteiros (inteiros), números decimais (flutuantes) e cadeias de caracteres (string). Entre os tipos mais complexos estão listas, tuplas, dicionários e conjuntos. Os tipos de dados desempenham um papel fundamental na programação em Python, pois permitem estruturar e processar dados.

Os tipos de dados do Python servem para organizar os dados de acordo com certas normas, a fim de cumprir os requisitos de diferentes aplicações. Cada tipo de dado tem **funções e propriedades específicas**. Por exemplo, as listas podem armazenar elementos numa sequência ordenada, enquanto os dicionários utilizam pares chave-valor para que, posteriormente, possam ser recuperados determinados dados. Ao escolher os tipos de dados adequados, o seu programa será mais flexível e fácil de manter.

## Que tipos de dados existem em Python?

A linguagem de programação Python compreende vários tipos de dados integrados. Aqui estão alguns deles:

- **Tipos numéricos**: `int`, `float`, `complex`.
- **Cadeias de caracteres**: `str`.
- **Sequências**: `list`, `tuple`, `range`.
- **Tipos binários**: `bytes`, `bytearray`, `memoryview`.
- **Dicionários**: `dict`.
- **Tipos booleanos**: `bool`.
- **Conjuntos**: `set`, `frozenset`.

### Tipos de dados numéricos

Existem vários tipos de dados numéricos em Python que servem para trabalhar com números.

1. Tipo inteiro (`int`): representa números inteiros sem decimais.
2. Tipo longo (`long`): é usado para inteiros de comprimento ilimitado. A partir do Python 3, `long` e `int` foram fundidos.
3. Tipo flutuante (`float`): compreende números com decimais.
4. Tipo complexo (`complex`): inclui números complexos com uma parte real e uma parte imaginária, acompanhados pela terminação `j`

```python
# variable with integer value.
a=3
# variable with float value.
b=3.17
# variable with complex value.
c=50+7j
```

### Cadeias de caracteres

Uma cadeia ou string Python (`str`) representa uma sequência de caracteres. Pode escrevê-los entre **aspas simples, duplas ou triplas**.

```python
# Single quotes
str1 = 'Hello World!'
# Double quotes
str2 = "This is a string."
# Triple quotes for multi-line strings
str3 = '''This is a multi-line string.'''
```

As strings do Python são **imutáveis**, ou seja, não podem ser modificadas depois de criadas. No entanto, as cadeias podem ser manipuladas, combinadas e analisadas através de muitos métodos e operações. Pode guardar os resultados em variáveis e obter assim novas strings.

Aqui pode ver exemplos de operações com strings:

- Determinar o comprimento de uma string: `len(str)`.
- Slicing: `str[start:end]`.
- Concatenação de strings: `str1 + str2`.

### Sequências

As sequências Python são estruturas de dados que armazenam uma **coleção ordenada** de elementos. Elas permitem aceder aos elementos com base na sua posição dentro da sequência. Existem vários tipos de dados sequenciais Python:

**Listas (`list`)** ou listas Python: são **tipos de dados sequenciais mutáveis** que representam um conjunto ordenado de elementos. Numa lista, é possível modificar, adicionar e eliminar elementos. As listas são criadas escrevendo entre colchetes e podem conter elementos de diferentes tipos de dados.

```python
my_list = [1, 2, 3, 'Hello', 'World']
```

**Tupla (`tuple`)**: são **tipos de dados sequenciais imutáveis** que, tal como as listas, apresentam uma coleção ordenada de elementos. No entanto, ao contrário das listas, as tuplas não podem ser modificadas *posteriormente* e são representadas escrevendo os elementos entre parênteses.

```python
my_tuple = (4, 5, 6, 'Python')
```

**Intervalo (`range`)**: é um tipo especial de dados Python normalmente utilizado para loops e iterações que serve para gerar uma sequência de números. O tipo de dados `range` cria uma sequência de inteiros num intervalo específico. O **objeto do tipo range** gera uma sequência de números sob demanda e não a armazena como uma lista completa na memória. Em vez disso, gera os números conforme necessário, o que melhora a eficiência, por exemplo, no caso de sequências de números grandes.

```python
# Range from 0 to 4
my_range = range(4)
for i in my_range:
    print(i)
# Output: 0, 1, 2, 3
```

### Tipos binários

Os tipos binários são utilizados para armazenar informações representadas na forma de códigos binários. Podem ser armazenados em diferentes tipos de objetos:

**Bytes (`bytes`)**: representa uma sequência **imutável** de bytes. Os bytes podem ser criados utilizando a função `bytes()` ou com o prefixo `b`.

```python
my_bytes = b'Hello'
```

**Bytearray (`bytearray`)**: ao contrário do `bytes`, este tipo de dados do Python representa uma sequência de bytes **mutável**, pelo que os valores armazenados podem ser modificados.

```python
my_bytearray = bytearray(b'Python')
```

### Dicionários

Os dicionários (`dict`) em Python são uma estrutura de dados que armazena elementos na forma de **pares chave-valor**. Ao contrário das listas ou tuplas, que contêm uma sequência ordenada de elementos, os dicionários são desordenados e seus elementos só podem ser acessados por meio de uma chave única.

```python
my_dict = {
    "name": "Max",
    "age": 25,
    "city": "Berlin"
}
```

### Tipos de dados booleanos

Os tipos de dados booleanos do Python representam **valores de verdade**, ou seja, valores que podem ser verdadeiros (`True`) ou falsos (`False`). Esses dados são essenciais para realizar avaliações lógicas e tomar decisões dentro de um programa.

```python
a = True
b = False
result_1 = (a and b) # returns False
result_2 = (a or b) # returns True
result_3 = (not a) # returns False
```

### Conjuntos

Um conjunto (`set`) é uma **coleção desordenada** de valores únicos que não permite duplicatas. Pode utilizá-los para armazenar vários elementos de forma que cada elemento seja único.

```python
my_set = {1, 2, 3, 4, 5}
```

`frozenset` é uma **versão imutável de um conjunto**. Uma vez criado, não é possível adicionar, eliminar ou modificar os elementos.

```python
my_set = {1, 2, 3, 4, 5}
frozen_set = frozenset(my_set)
```


This is a markdown version of: [https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/tipos-de-dados-python/](https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/tipos-de-dados-python/) for AI/LLM consumption.