1
resposta

Resolução de Atividades -

lista_livros = ["1984", "Dom Casmurro", "O Pequeno Príncipe", "O Hobbit", "Orgulho e Preconceito"]

def buscar_livro (livro_procurado):

    contador = 0

    for livro_indice in lista_livros:

        contador += 1

        if livro_indice == livro_procurado:

            print (f"Livro encontrado! Estante Nº{contador}")
            break
    
    # Solução paliativa:
    
    if contador == len (lista_livros):
        print ("Livro não encontrado ou indisponível")

livro_usuario = input ("Digite o nome do livro a ser procurado: ")

buscar_livro (livro_usuario)
1 resposta

Olá, Victor, como vai?

O seu código demonstra um bom entendimento sobre a utilização do laço de repetição for e a aplicação da palavra reservada break para interromper a busca no momento exato em que a condição é atendida. A lógica de utilizar um contador para indicar a posição do livro na estante foi uma adição interessante ao exercício e funciona corretamente dentro da estrutura proposta. É muito positivo ver que você explorou o uso de funções e a interação com o usuário através do input para tornar o programa mais dinâmico.

Uma dica para tornar o código ainda mais limpo em Python é utilizar a função enumerate no laço de repetição, o que permite obter o índice e o valor do item simultaneamente sem a necessidade de gerenciar um contador manual. Além disso, usar um else elimina a necessidade da verificação manual ao final da função.

Como exemplo, ao utilizar for indice, livro in enumerate(lista_livros, start=1), você acessa a posição diretamente. No caso do tratamento para livros não encontrados, colocar um print dentro de um bloco else alinhado ao for garante que a mensagem só apareça se o break nunca for acionado.

lista_livros = ["1984", "Dom Casmurro", "O Pequeno Príncipe", "O Hobbit", "Orgulho e Preconceito"]

def buscar_livro(livro_procurado):
    for contador, livro_indice in enumerate(lista_livros, start=1):
        if livro_indice == livro_procurado:
            print(f"Livro encontrado! Estante Nº{contador}")
            break
  
    else:
        print("Livro não encontrado ou indisponível")

livro_usuario = input("Digite o nome do livro a ser procurado: ")
buscar_livro(livro_usuario)

Parabéns pelo excelente trabalho no exercício e por compartilhar sua solução. O fórum está a disposição.

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