# Função Python randint()

A função `randint()` em Python é uma opção simples e rápida para se gerar **números inteiros aleatórios** dentro de um intervalo especificado. Ela pode ser útil em diversas aplicações, como em jogos, testes, simulações e outras situações que pedem pela geração de números aleatórios de forma controlada.

## Quando utilizar a função randint em Python?

A função `randint()` faz parte do **módulo random** de Python. Ela serve para gerar números inteiros aleatório dentro de um intervalo. Diferentemente de funções semelhantes de outras linguagens de programação, `randint()` é capaz de determinar o último número do intervalo especificado. Isso quer dizer que tanto o valor inicial quanto o valor final desse intervalo sempre estarão entre os resultados possíveis. Na maioria das vezes, funções `randint()` são aplicadas a códigos que devem se basear em valores randômicos.

Como alternativas a `randint()`, o módulo random disponibiliza outras funções capazes de gerar números aleatórios, cada uma a seu modo. Por exemplo, `random.randrange(start, stop[, step])`, similar à função `randint()`, diferencia-se desta por **adicionar um passo opcional** à sequência de números. Outro exemplo: a função `random.randint()` gera apenas números inteiros, já a função `random.uniform(a, b)` retorna um número de vírgula flutuante aleatório, dentro do intervalo indicado. Existe, ainda, o pacote *numpy*, que oferece funções mais sofisticadas para a geração de números aleatórios. Estas servem, principalmente, a matrizes e operações matemáticas complexas.

## Sintaxe da função randint

A estrutura da função `randint()`, do módulo random de Python, é relativamente simples e exige somente dois parâmetros: o **valor inicial** e o **valor final** do intervalo no qual a geração do número aleatório deve ocorrer.

```python
import random
random_number = random.randint(start, end)
```

- `import random`: Importa o módulo random, que contém a função `randint()`. Essa instrução é essencial para a aplicação da função `randint()`.
- `random_number`: Variável que armazena o resultado da função `randint()`. Essa variável exibe o número inteiro aleatório gerado.
- `start`: Trata-se do valor inicial do intervalo em que será gerado o número aleatório — esse valor será incluído entre os resultados possíveis.
- `end`: Valor final do intervalo em que será gerado o número aleatório — esse valor também estará incluído nos resultados possíveis.

Elaboramos, abaixo, um código que apresenta um exemplo de aplicação da função `randint()`:

```python
import random
random_number = random.randint(1, 100)
print(random_number)
```

Esse exemplo comanda a geração de um número inteiro aleatório entre 1 e 100. O intervalo deve abranger os valores-limite (`start` e `end`) especificados, ou seja, os números 1 e 100 também devem ser incluídos entre os valores possíveis.

## Aplicações e usos da função randint

Você pode utilizar a função `randint()` em Python de forma flexível, para a geração de números aleatórios pela sua aplicação. No entanto, para que a função possa ser aplicada corretamente, você precisará se certificar de que o seu código esteja limpo e correto, o que evitará a ocorrência de mensagens de erro.

### Solicitações múltiplas de randint

Chamando a função `randint()` múltiplas vezes, você será capaz de gerar vários números inteiros aleatórios em diferentes partes do seu código. Cada chamada de `randint()` gerará um novo número adequado aos parâmetros especificados. Observe:

```python
import random
# Generate three different random integers between 1 and 10
random_number1 = random.randint(1, 10)
random_number2 = random.randint(1, 10)
random_number3 = random.randint(1, 10)
# Print the generated random integers
print("Random integer 1:", random_number1)
print("Random integer 2:", random_number2)
print("Random integer 3:", random_number3)
```

No exemplo de código acima, chamamos a função `randint()` três vezes, em momentos distintos, para gerar três números aleatórios diferentes, entre 1 e 10. Cada variável `random_numberX` armazena o respectivo resultado de uma chamada de `randint()`, valor que pode ser exibido ou reutilizado, conforme as necessidades da aplicação.

### ValueError na função randint

Durante a aplicação da função `randint()`, um *ValueError* pode vir a ocorrer. Ele é exibido quando argumentos (parâmetros) não correspondem ao que é suportado, por exemplo, se o valor inicial for maior que o valor final, ou se algum dos argumentos não se tratar de um número inteiro. Justamente por isso, é importante que você se certifique de que os seus parâmetros estejam corretos: para evitar mensagens *ValueError* e conseguir executar a função sem problemas.

```python
# Correct use of randint()
random_number = random.randint(1, 10)
print("Random integer between 1 and 10:", random_number)
# Potential ValueError if 'end' is less than 'start'
random_number_error = random.randint(10, 5)  # This will raise a ValueError
print("This won't be printed as an error occurs.")
```

Nesse exemplo, primeiramente usamos `random.randint(1, 10)` para gerar um número inteiro aleatório entre 1 a 10. Em seguida, tentamos usar a função `random.randint(10, 5)`, que resultou em um *ValueError*. Isso ocorreu porque, nesse caso, o valor inicial é superior ao valor final.

### TypeError na função randint

Um *TypeError* sinaliza que uma operação ou função foi aplicada a um tipo incompatível de dado. Ele pode ser exibido durante a aplicação da função `randint()` do módulo random, quando algum argumento não corresponder ao tipo de dado suportado, como ilustra o exemplo abaixo:

```python
import random
random_number_error = random.randint("1", "10")
```

Nesse código, tentamos fazer uso da função `randint()` com uma [string Python](https://www.ionos.com/digitalguide/websites/web-development/python-string/ "Python string") como argumento. Ou seja, em vez de números inteiros, os argumentos usados tratam-se de *strings* (`"1"` e `"10"`), o que gera um *TypeError*. A função `randint()` só suporta números inteiros como argumentos na definição do intervalo de números aleatórios.


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