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.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!