我必须按类型搜索电影的功能,所以当我输入类型的名称时,可以打印出具有该类型的所有电影。但我有一个问题,在我的txt文件中,例如,我有(一个飞过杜鹃的巢| 戏剧 | 133 |米洛斯福尔曼|杰克尼科尔森|美国| 1975 |“电影描述” ...)。我把它分开了“|”和类型是[1]位置的索引。但我也有2种不同类型的电影,例如,(Matrix | 动作,科幻 | 136 | Lana和Lilly Wachowski |基努·里维斯|美国| 1999 |“电影描述” ...) 现在,如果我输入“戏剧”,它将打印出所有在索引[1]上有“戏剧”的电影,但是如果我输入,例如“动作”它将不打印出矩阵,因为矩阵有2类型(程序实际上看到1)所以我必须在它们之间用逗号输入它们。 我想制作一个程序,即使你的电影有两种类型,只输入其中一种,你的程序就能识别并打印出那部电影。 (我尝试用“,”分割部分“流派”,但是它的列表索引超出范围,因为不是每部电影都有“,”在流派部分)
list_movie = []
def movies_list():
with open("film.txt","r") as f:
all_h = ["name","genre","lasting","director","main role","country","year","desc"]
for r in f.readlines():
dicct = {}
bla = r.strip().split("|")
count = 0
for i in bla:
dicct[all_h[count]] = i
count += 1
list_movie.append(dicct)
movies_list()
def genre():
x=False
genres = input("Input genre: ")
for r in list_movie:
if r["genre"] == genres:
print()
print("Movie name: ", r["name"])
print("Genre: ", r["genre"])
print("Lasting: ",r["lasting"],"minutes")
print("Director: ",r["director"])
print("Main role: ",r["main role"])
print("Country: ",r["country"])
print("Year: ",r["year"])
print("-------------------------------")
x=True
if x==True:
print()
else:
print()
print("No movie was found. ")
print()
genre()
我创建了一个函数,我将文件的所有部分放在dict中然后放在列表中,这样每次我需要从该文件中获取内容时都不必打开文件。 我也尝试过去“如果有的话......”但是它只用了一个字母,所以它也不起作用。
答案 0 :(得分:1)
如果r [' genre']中的流派: ...