Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Utilidade do continue em laços

def titulo(txt):
    print('=' * len(txt))
    print(txt)
    print('=' * len(txt))
    
def lista_livros():
    lista = []
    livros = {}
    while True:
        livros['titulo'] = input('Digite o titulo do livro: ')
        livros['estoque'] = int(input('Digite o número do estoque deste livro: '))
        lista.append(livros.copy())
        while True:
            opcao = input('Quer continuar? [S/N]').strip().upper()
            if opcao in ('S', 'N'):
                break
            print('Digite S ou N.')
        if opcao == 'N':
            return lista

def estoque_livros(lista):
    titulo = input('Digite o título do livro que deseja saber o estoque: ').strip().lower()
    for livro in lista:
        if titulo == livro['titulo'].lower():
            print(f"O estoque do livro {livro['titulo']} é de {livro['estoque']} unidades")

def apresentacao_lista(lista):
    for indice, livro in enumerate(lista, start=1):
        if livro['estoque'] == 0:
            continue
        print(f"{indice}º Livro disponivel: {livro['titulo']}")
    while True:
        opcao = input('Deseja saber o estoque de algum livro? [S/N]').strip().upper()
        if opcao in ('S', 'N'):
            break
        print('Digite S ou N')
    if opcao == 'S':
        estoque_livros(lista)

def main():
    titulo('ESTOQUE DE LIVROS')
    lista = lista_livros()
    apresentacao_lista(lista)


if __name__ == '__main__':
    main()
2 respostas
solução!

Olá, Giovanni! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou o controle de fluxo para organizar entradas com Python, utilizou muito bem a estrutura de repetição para validar opções e ainda compreendeu a importância da função para modularizar o código.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma dica interessante para o futuro é aplicar tratamento de exceções com try/except. Assim:

try:
    livros['estoque'] = int(input('Digite o número do estoque deste livro: '))
except ValueError:
    print("Digite apenas números válidos para o estoque.")

Isso faz o programa ficar mais robusto e evita erros de execução.

Ah, uma pergunta: Você acha mais interessante evoluir esse código adicionando tratamento de erros para entradas inválidas ou criando funções extras para organizar melhor as operações?

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Muito Obrigado!