複数の辞書で値をチェックしているので、次のコードに問題があります。else forループ内で複数の辞書を参照している場合
この値が見つからない場合は、「見つからない」という複数のプリントが表示されています。 elseステートメントはすべての辞書をチェックし、それぞれの辞書ではないすべての辞書をチェックした後に 'not found'を出力する必要があります。
class Catalog:
def __init__(self):
self.movies_list = [
{'Titulo:': 'The Ring', 'Autor:': 'random_guy', 'Genero:': 'Horror', 'Duracion:': '115 Minutos',
'Anio:': '2002',
'Rating:': '7.1/10'},
{'Titulo:': 'Locos por la progra', 'Autor:': 'other_guy', 'Genero:': 'Comedy', 'Duracion:': '90 Minutos',
'Anio:': '2000', 'Rating:': '10/10'}]
#self.user_input
self.x = 'The Ring'
def search(self):
for dict in self.movies_list:
for i in dict.items():
#self.user_input
if self.x in i:
print(dict['Titulo:'])
else:
print('not found')
break
catalog = Catalog()
catalog.search()
ありがとうございました。これもまたリターンの使用法を明確にし、コードをきれいにします。私が間違っていないなら、これは以前の反復に戻ります。あれは正しいですか? – hyl3rid