0
respostas

[Dúvida] Está conforme a atividade?

biblioteca = []
categoria = []
quantidade = []

print("Sistema de controle de estoque - Buscante")

criar_categoria = input("Deseja cadastrar uma categoria de livros? (s/n) ").lower()
if criar_categoria == "s":
    digite_categoria = input("Digite o nome da categoria de livros: ")
    categoria.append(digite_categoria)
    print("Categoria cadastrada com sucesso: {}".format(digite_categoria))
else:
    print("Nenhuma categoria de livros foi cadastrada.")

criar_produto = input("Deseja cadastrar um livro? (s/n) ").lower()
if criar_produto == "s":
    for categoria_produto in categoria:
        biblioteca.append(
            input("Digite o nome do livro da categoria {}: ".format(categoria_produto))
        )
else:
    print("Nenhum livro foi cadastrado no sistema.")

criar_quantidade = input("Deseja informar a quantidade de exemplares? (s/n) ").lower()
if criar_quantidade == "s":
    for produto_quantidade in biblioteca:
        quantidade.append(
            int(input("Informe a quantidade de exemplares disponíveis do livro {}: ".format(produto_quantidade)))
        )
else:
    print("Quantidade de exemplares não informada.")

# Existem duas formas de verificar a quantidade no estoque

# Forma 1:
# Usando if, a verificação acontece apenas uma vez.
# Serve para checar se ainda existe quantidade disponível.

# for i in quantidade:
#     if i > 0:
#         i -= 1
#         print("Quantidade disponível {}".format(i))
#     else:
#         print("Quantidade indisponível")


# Forma 2:
# Usando while, a quantidade é reduzida de 1 em 1.
# Cada repetição representa uma venda.
# O laço continua até o estoque zerar.

for i in quantidade:
    while i > 0:
        print("Quantidade disponível {}".format(i))
        i -= 1
    else:
        print("Quantidade indisponível")

print("\nLista completa do estoque:\n")


# Teste de sub_listas 
# for i in range(len(biblioteca)):
#     print("| Categoria: {} | Livro: {} | Quantidade: {} |"
#           .format(categoria[i], biblioteca[i], quantidade[i]))

Fiz mais coisas do que o exercício pediu porque me empolguei um pouco rsrs, porém gostaria de confirmar se o código está de acordo com a atividade. Minha principal dúvida está no segundo formato, pois não compreendi totalmente como o for percorre a lista e como o while atua como verificador. O PyCharm apresentou esse formato como uma recomendação (uma forma que também pode ser utilizada), em que o for é responsável por percorrer os dados, enquanto o while controla a repetição das vendas até que a quantidade se esgote. Gostaria de entender melhor essa separação de responsabilidades, pois não entendi completamente como essa parte funciona.