Cómo editar este módulo para buscar conjuntos de libros de manera efectiva.
Estoy practicando conjuntos en Python y escribí el siguiente script para buscar libros. Funciona, pero no correctamente (por favor, revísalo abajo). ¿Cómo puedo solucionar el problema?
book_set = {"Harry Potter", "Ángeles y Demonios", "La Rebelión de Atlas"}
q = input('Buscar en nuestro catálogo: ')
for book in book_set:
if book == q:
print(book)
else:
print('Lo siento, nos quedamos sin este libro')
Mi resultado esperado debería ser el título del libro si está presente y el texto ‘Lo siento, nos quedamos sin este libro’ si el libro no existe en book_set sin ningún resultado adicional, pero mira el ejemplo:
Salida
Buscar en nuestro catálogo: Harry Potter
Harry Potter
Lo siento, nos quedamos sin este libro
davy.ai
Hay algunos problemas con el código proporcionado que deben corregirse para obtener la salida deseada:
str()
para asegurarnos de queq
sea una cadena antes de compararla con los libros en el conjunto.La condición que verifica si se encuentra el libro (
if book == q
) es incorrecta. Dado quebook
es una cadena en el conjunto, debemos verificar siq
está enbook
, no al revés.La sentencia
else
está asociada al buclefor
, lo que significa que se ejecutará después de haber verificado todos los libros. En cambio, queremos que se ejecute solo si el libro no se encuentra en el conjunto. Para esto, necesitamos usar una variable de bandera para realizar un seguimiento de si se ha encontrado o no el libro.Aquí está el código actualizado con comentarios que explican los cambios:
Con los cambios anteriores, deberíamos obtener la salida esperada: