Crie um procedimento chamado promoverProdutos que como receba como parametros uma lista de códigos de barra e a lista de produtos cadastrados. A função deve realizar seu processamento de modo que para cada codigo de barra existente na primeira lista, o campo de promoção do produto correspondente na lista de produtos existentes seja modificado para True, indicando que o mesmo passa a se encontrar em promoção. A função deve ainda retornar uma lista com os códigos de barra fornecidos na primeira lista, porém que não possuam produto correspondente na lista de estoque.( 2,0 pontos)
Passo 1
Beleza, pessoal! Vamos dar uma olhada no que a questão está pedindo. A gente precisa criar uma função chamada
promoverProdutos
que recebe duas listas: uma de códigos de barras e outra de produtos cadastrados. O objetivo é, para cada código de barra na primeira lista, encontrar o produto correspondente na lista de produtos e marcar esse produto como “em promoção” (promocao = True
). Além disso, a função deve retornar uma lista com os códigos de barras que não têm um produto correspondente na lista de estoque. Para resolver isso, vamos precisar entender como manipular listas e dicionários em programação, além de usar estruturas de repetição e condição.Passo 2
Primeiro, vamos pensar em como representar os produtos cadastrados. Normalmente, cada produto pode ser representado como um dicionário contendo várias informações, como o código de barras, nome, preço e o status de promoção. Por exemplo:
produto = {
'codigo_barras': '1234567890123',
'nome': 'Produto A',
'preco': 29.99,
'promocao': False
}
Aqui, o campo
promocao
inicialmente está como False
, indicando que o produto não está em promoção.Passo 3
Agora, vamos criar a função
promoverProdutos
. Ela vai receber duas listas: uma com códigos de barras e outra com produtos. O que precisamos fazer é percorrer cada código de barras da primeira lista e verificar se existe um produto com esse código na lista de produtos. Se existir, mudamos o campo promocao
para True
. Se não existir, adicionamos esse código a uma nova lista que vamos retornar no final.Passo 4
Vamos usar um loop
for
para percorrer cada código de barras na primeira lista. Dentro desse loop, vamos usar outro loop para verificar cada produto na lista de produtos e encontrar aquele que tem o mesmo código de barras. Se encontrarmos, atualizamos a promoção. Se não, depois de verificar todos os produtos, adicionamos o código à lista de não encontrados.Passo 5
Também precisamos criar uma lista para armazenar os códigos de barras que não têm um produto correspondente. Vamos chamar essa lista de
codigos_nao_encontrados
. Inicializamos ela vazia no começo da função.Passo 6
Depois de percorrer todos os códigos de barras, retornamos a lista
codigos_nao_encontrados
. Assim, quem usar a função saberá quais códigos não correspondem a nenhum produto no estoque.Passo 7
Vamos juntar tudo isso em uma função completa:
def promoverProdutos(lista_codigos, lista_produtos):
codigos_nao_encontrados = []
for codigo in lista_codigos:
encontrado = False
for produto in lista_produtos:
if produto['codigo_barras'] == codigo:
produto['promocao'] = True
encontrado = True
break
if not encontrado:
codigos_nao_encontrados.append(codigo)
return codigos_nao_encontrados
Resposta
Prontinho! A função
promoverProdutos
está pronta. Ela atualiza os produtos em promoção e retorna os códigos que não foram encontrados no estoque.Exemplo de Uso
Para ver como funciona, dá uma olhada neste exemplo:
# Lista de códigos de barras para promoção
codigos_promocao = ['1234567890123', '9876543210987', '5555555555555']
# Lista de produtos cadastrados
produtos = [
{'codigo_barras': '1234567890123', 'nome': 'Produto A', 'preco': 29.99, 'promocao': False},
{'codigo_barras': '1111111111111', 'nome': 'Produto B', 'preco': 19.99, 'promocao': False},
{'codigo_barras': '9876543210987', 'nome': 'Produto C', 'preco': 39.99, 'promocao': False}
]
# Chamando a função
codigos_faltantes = promoverProdutos(codigos_promocao, produtos)
# Resultado
print("Produtos após promoção:", produtos)
print("Códigos não encontrados:", codigos_faltantes)
Saída:
Produtos após promoção: [
{'codigo_barras': '1234567890123', 'nome': 'Produto A', 'preco': 29.99, 'promocao': True},
{'codigo_barras': '1111111111111', 'nome': 'Produto B', 'preco': 19.99, 'promocao': False},
{'codigo_barras': '9876543210987', 'nome': 'Produto C', 'preco': 39.99, 'promocao': True}
]
Códigos não encontrados: ['5555555555555']
Assim, os produtos A e C estão em promoção, e o código ‘5555555555555’ não foi encontrado no estoque.
Exercícios relacionados
Crie um procedimento chamado cadastrarProduto que recebe como parâmetro a lista de produtos cadastrados e que deve realizar o cadastro de um produto na lista estoque. Deve ser solicitado todos os dados do novo produto, porém não podem ser cadastrados produtos com o mesmo código de barra. Produtos novos devem ser cadastrados no final da lista estoque ( 1,5 ponto)
Dê um exemplo de um problema do mundo real que pode ser modelado como o problema do caixeiro viajante.
Crie um procedimento chamado listarPromocoesCaros que recebe como parâmetro a lista de produtos cadastrados e que deve apresentar todos os dados de produtos em promoção que estejam acima da média de preços dos produtos promocionais em ordem alfabética dos nomes do produtos ( 2,0 pontos)
Crie uma função chamada existeProduto que recebe como parâmetro um valor inteiro que representa um código de barras de um produto e a lista de produtos no estoque e retorna True se existir algum produto armazenado na lista estoque que possua o código de barras igual ao valor passado no argumento da função. Caso contrário, a função deve retornar o valor False ( 1,0 ponto);