Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Produtos separados por vírgula, minha solução

1 resposta

Olá, Herley. Como vai?

É muito bom ver você compartilhando a sua solução prática por meio de um link do Google Colab! Usar notebooks interativos é uma excelente maneira de documentar o seu progresso nos estudos e compartilhar códigos funcionais com a comunidade do fórum.

O desafio de unir duas listas geradas a partir de entradas do usuário é um ótimo exercício para consolidar conceitos fundamentais de manipulação de strings e coleções em Python. A lógica principal dessa atividade envolve três ferramentas essenciais:

  • O método .split(","): Ele é responsável por pegar a string única digitada pelo usuário (como "maçã, banana, pera") e quebrá-la toda vez que encontrar uma vírgula, gerando uma lista estruturada de elementos.
  • A função zip(): É a forma mais elegante e performática em Python para percorrer múltiplos iteráveis em paralelo. Ela emparelha o produto localizado na posição zero da primeira lista com o preço localizado na mesma posição zero da segunda lista, e assim por diante.
  • O método .strip(): Um cuidado indispensável de tratamento de dados. Como os usuários costumam digitar espaços em branco logo após a vírgula (como "maçã, banana"), utilizar .strip() remove esses espaços vazios das extremidades do texto, deixando a exibição final limpa e alinhada.

Uma sugestão técnica para deixar o seu programa ainda mais robusto e com uma apresentação mais profissional é realizar a conversão dos preços que entram como texto para tipo decimal (float) e formatar a saída de texto utilizando as regras de representação de moeda local (R$).

Veja um exemplo de como implementar essa melhoria:

# Recebe e divide as entradas do usuário em listas
produtos_input = input("Digite os produtos separados por vírgula: ").split(",")
precos_input = input("Digite os preços separados por vírgula: ").split(",")

# Validação de segurança para garantir a correspondência de pares
if len(produtos_input) == len(precos_input):
    print("\nLista de Produtos Cadastrados:")
    for produto, preco in zip(produtos_input, precos_input):
        # Limpa os espaços e converte a string do preço para float
        nome_produto = produto.strip()
        valor_preco = float(preco.strip())
        
        # Exibe os dados formatados com duas casas decimais
        print(f"* {nome_produto}: R$ {valor_preco:.2f}")
else:
    print("Erro: A quantidade de produtos e preços informados deve ser exatamente a mesma.")

Essa validação de tamanho (len) é uma boa prática recomendada porque, por padrão, a função zip() interrompe o laço de repetição de forma silenciosa assim que atinge o fim da menor lista. Se o usuário digitar três produtos e apenas dois preços, o último produto seria simplesmente ignorado na exibição sem que nenhum aviso de erro fosse gerado para o operador do sistema.

Parabéns pelo desenvolvimento da atividade prática e por disponibilizar o seu notebook no fórum!

Espero que possa ter lhe ajudado!