![]() |
Python - Gerando Strings Aleatórias com Restrições | |
@CanalQb |
Como Gerar Strings Aleatórias com Restrições Usando Python
Gerar strings aleatórias é uma tarefa comum em diversas aplicações, desde testes de software até criação de senhas e tokens únicos. Neste exemplo, vamos criar um script Python que gera 1000 strings de 10 caracteres cada, com a restrição de que nenhum caractere apareça mais que 3 vezes por string. Além disso, as strings serão armazenadas em um banco de dados SQLite para uso futuro.
Detalhes do Script
O script utiliza a biblioteca padrão random
para geração dos caracteres e sqlite3
para manipulação do banco de dados local. O alfabeto definido exclui caracteres facilmente confundíveis, como 'l', 'o', '1' e '0', aumentando a legibilidade das strings geradas.
Código Completo do Script
import random
import sqlite3
# Alfabeto definido para gerar as strings
alfabeto = "abcdefghijkmnpqrstuvwxyz23456789"
# Conecta com o banco de dados SQLite (ou cria se não existir)
conn = sqlite3.connect('strings.db')
cursor = conn.cursor()
# Cria a tabela caso não exista
cursor.execute('''
CREATE TABLE IF NOT EXISTS strings (
id INTEGER PRIMARY KEY AUTOINCREMENT,
string TEXT
)
''')
# Gera 1000 strings aleatórias de 10 caracteres cada
for _ in range(1000):
string_aleatoria = ''
while len(string_aleatoria) < 10:
caractere = random.choice(alfabeto)
# Verifica se o caractere já apareceu 3 vezes na string
if string_aleatoria.count(caractere) < 3:
string_aleatoria += caractere
# Insere a string no banco de dados com prefixo fixo para identificação
cursor.execute('INSERT INTO strings (string) VALUES (?)', ('aaab54n' + string_aleatoria,))
# Salva as mudanças e fecha a conexão
conn.commit()
conn.close()
Explicação passo a passo
- Alfabeto: Define os caracteres permitidos para a geração das strings.
- Banco de dados: Cria uma tabela chamada
strings
com um ID automático e o texto da string. - Laço de geração: Para cada string, o programa adiciona caracteres aleatórios até que a string tenha 10 caracteres, respeitando a regra de máximo 3 repetições por caractere.
- Prefixo fixo: Cada string armazenada recebe um prefixo fixo "aaab54n", que pode ser ajustado conforme a necessidade do projeto.
- Persistência: Os dados são salvos no banco SQLite para uso posterior.
Considerações Finais
Este método é útil para gerar identificadores únicos e controlados, por exemplo, para sistemas de autenticação, tokens de sessão ou códigos promocionais. Adaptar o alfabeto e o tamanho da string permite personalizar o script para diferentes necessidades.
Para mais tutoriais e exemplos, visite o canal oficial do YouTube: @CanalQb.