0
respostas

[Sugestão] Minha solução

produtos = input('Digite os produtos separados por vírgula: ').split(',')
precos = input('Digite os preços separados por vírgula: ').split(',')

def tit_erro(texto):
    title = '|='+ '=' * len(texto) + '=|'
    print(f'\n{title}')
    print(f'| {texto} |')
    print(f'{title}\n')

def valida_entrada(produtos, precos):
    if len(produtos) == len(precos):
        return True
    else:
        tit_erro('Detectamos uma diferença entre a quantidade de produtos e preços!')
        while True:
            resposta = input('Deseja continuar? (s/n) ')
            if resposta.lower() in ('s','sim'):
                return True
            elif resposta.lower() in ('n','não','nao'):
                print('Terminal Finalizado!')
                return False
            else:
                print('Resposta não identificada, tente novamente.')

def insert_est(produtos, precos, estoque):
    for produto, preco in zip(produtos, precos):
        while True:
            try:
                preco_valido = float(preco.strip())
                estoque[produto.strip()] = preco_valido
                break
            except ValueError:
                tit_erro(f'Erro: Preço inválido para {produto.strip()}!')
                preco = input(f'Digite o preço correto: ')

def exibir_est (estoque):
    print('\nLista de Estoque: \n')
    for chave, valor in estoque.items():
        print(f'{chave}: R${valor:.2f}')

def main():
    estoque = {}
    if valida_entrada(produtos, precos):
        insert_est(produtos, precos, estoque)
        exibir_est(estoque)


if __name__ == '__main__':
    main()