Как проверить, существует ли введенная книга? Пример:
libros = {
"Principito" : ["Titulo: Principito","Genero: Fantasia", "paginas: 20", "Autor: Raul", "Numero ISBN: 12312123", "Año de edicion: 1994", "Editorial: IZI"],
"El padrino" : ["Titulo: El padrino","Genero:Ficcion", "paginas: 30", "Autor: Lopez", "Numero ISBN: 22312312", "Año de edicion: 1992", "Editorial: PIZI"]
}
Я остаюсь таким, но знаю, что это неправильно. Ошибка, которую я знаю, заключается в том, если, но как мне это выразить?
#Funcion para consultar por un libro.
def consultar():
print("Por cual libro desea consultar?")
s=input()
if (libros[s] == libros):
print("Tenemos ese libro en la Biblioteca")
else:
print("No tenemos ese libro en la Biblioteca")
Есть более оптимальный способ это реализовывать:
libros = {
"Principito" : ["Titulo: Principito","Genero: Fantasia", "paginas: 20", "Autor: Raul", "Numero ISBN: 12312123", "Año de edicion: 1994", "Editorial: IZI"],
"El padrino" : ["Titulo: El padrino","Genero:Ficcion", "paginas: 30", "Autor: Lopez", "Numero ISBN: 22312312", "Año de edicion: 1992", "Editorial: PIZI"]
}
Ты представляешь, что раз неудара в лунку (), у нас есть параметр ввода "text", чтобы мочь концентрироваться на for.
def consultar1(text="El padrino"):
existe = 0
for libro in libros:
if text == libro:
existe = 1
if (existe == 1):
return True
else:
return False
Он был бы приспособлен эту к предыдущему ответу.
def consultar2(text="El padrino"):
if text in libros:
return True
else:
return False
С этим мы пробегаем все ключи только до тех пор, пока не будет матча, в случае, если есть.
Ты можешь видеть, как он гораздо быстрее, и против большого будьте ты книги различие будет больше.
%timeit -n1000 consultar1(): 1000 loops, best of 3: 623 ns per loop
%timeit -n1000 consultar2(): 1000 loops, best of 3: 302 ns per loop
Половина времени только с двумя поступающими данными.
Согласно которому я понимаю, ты хочешь, чтобы пользователь ввел имя книги в компьютер, и этот это ищет в “базе данных”, которая была бы договоренностью. Если это будет так, пример, который оставил тебя, подаст тебя:
# -*- coding: utf-8 -*-
#AGREGA TU ARREGLO <-----
#Funcion para consultar por un libro.
def consultar():
print("Por cual libro desea consultar?")
s=raw_input()
existe = 0
for libro in libros:
if s == libro:
existe = 1
if (existe == 1):
print("Tenemos ese libro en la Biblioteca")
else:
print("No tenemos ese libro en la Biblioteca")
consultar()
Г‰sta мне кажется решение mГЎs просто используя код автора, но "pythonizado":
def consultar():
print("Por cual libro desea consultar?")
consulta = input()
if consulta in libros:
print("Tenemos ese libro en la Biblioteca")
else:
print("No tenemos ese libro en la Biblioteca")