Oii, Matheus.
Obrigada por compartilhar seu código com a comunidade Alura.
Gostei da sua solução usando re.split
para permitir entradas com vírgulas e espaços, isso torna a experiência mais flexível para quem digita os produtos. A verificação com isalpha
também ajuda a garantir que os dados sejam limpos e consistentes.
Uma dica interessante para o futuro é exibir os produtos em ordem alfabética no final. Isso facilita a visualização. Assim:
import re
def obter_produtos(nome_estoque: str) -> tuple:
"""
Solicita ao usuário uma lista de produtos separados por vírgula
e retorna uma tupla com os nomes válidos (apenas letras).
"""
while True:
produtos = input(f'Produtos do {nome_estoque} (separados por vírgula): ').strip()
if not produtos:
print('A lista não pode estar vazia. Tente novamente.')
continue
# Divide por vírgula, espaço ou ambos
itens = re.split(r"[, ]+", produtos)
# Verifica se todos os itens contêm apenas letras
if all(item.isalpha() for item in itens):
return tuple(itens)
else:
print('Digite apenas nomes de produtos (sem números ou símbolos).')
estoque_1 = obter_produtos('estoque 1')
estoque_2 = obter_produtos('estoque 2')
estoque = estoque_1 + estoque_2
estoque_ordenado = sorted(estoque)
print("\nRelatório final de produtos unificados (ordenado):")
print(estoque_ordenado)
Esse código usa sorted
para ordenar os itens em ordem alfabética antes de exibir.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!