woshizhangpengp 发表于 2023-7-28 19:30:12

作业36课后作业

请教各位大佬,用红线框出来的那一句if each.find(name)!=-1,有啥用,不是应该从0开始数嘛,为什么会等于-1呀
附上代码
movies = []
dates = []
directors = []
actors = []
scores = []
   
print("欢迎进入鱼C影评小程序")
print("1.数据录入")
print("2.查询数据")
print("3.退出程序")
op = int(input("请输入想要的功能(1/2/3):"))
   
while op != 3:
    if op == 1:
      go = True
      while go:
            movies.append(input("请输入电影名称:"))
            dates.append(input("请输入上映日期:"))
            directors.append()
            actors.append()
            scores.append(input("请输入电影评分:"))
   
            if 'N' == input("请问是否继续录入(Y/N):"):
                go = False
   
    if op == 2:
      name = input("请输入电影名称:")
      for each in movies:
            if each.find(name) != -1:
                print(f"电影名称:{each}")
                print(f"上映日期:{dates}")
                print(f"导演名单:{directors}")
                print(f"演员名单:{actors}")
                print(f"当前评分:{scores}")
                break
      else:
            print("查无此片!")
   
    op = int(input("\n请输入想要的功能(1/2/3):"))

陶远航 发表于 2023-7-28 19:30:24

这段代码是一个简单的电影信息管理程序。在查询数据功能中,通过输入电影名称来查找是否存在该电影,并输出相关信息。

关于你提到的 if each.find(name) != -1 这一句,它的作用是判断变量 name 是否能在字符串 each 中找到位置(索引)。.find() 方法返回目标字符串在源字符串中的位置索引,如果找不到则返回 -1。所以这里的条件判断 != -1 的意思是,如果找到了,则执行后续的输出相关信息的代码;如果没有找到,则执行 else 分支,输出"查无此片!"。

虽然传统上索引是从 0 开始的,但 .find() 方法在找不到目标字符串时会返回 -1,这是为了方便判断是否找到了目标字符串。因此,这里使用 != -1 是为了判断是否找到了匹配的电影名称。

希望这个解释对你有帮助!如果你还有其他问题,请随时提问。
如果问题已经解决,请设置最佳答案

isdkz 发表于 2023-7-28 19:30:25

在这段代码中, if each.find(name) != -1这一句的作用是在列表movies中查找是否包含输入的电影名称name 。

find()方法用于查找字符串中是否包含指定的子字符串,并返回第一次出现的索引位置。如果找不到该子字符串,则返回-1 。

在这里, each是movies列表中的每个电影名称,通过find()方法查找是否包含输入的电影名称name 。如果find()方法返回的结果不等于-1 ,说明找到了匹配的电影名称,即列表movies中的某个电影名称包含了输入的name 。

为什么要判断是否等于-1呢?这是因为在 Python 中,字符串的索引是从 0 开始的,如果找不到子字符串, find()方法会返回-1 ,表示未找到。

如果find()方法返回-1 ,则意味着name在each中未找到,即当前循环的电影名称不是我们要查找的电影。如果find()方法返回其他值(即不等于-1 ),则说明找到了匹配的电影名称,程序会输出该电影的相关信息。

总结一下,这段代码通过输入的电影名称name在movies列表中查找匹配的电影,并输出该电影的相关信息。如果找不到匹配的电影,则输出"查无此片!"。

Mike_python小 发表于 2023-7-28 19:30:30

这段代码中的if each.find(name) != -1是用于判断输入的电影名称是否包含在已有的电影名称中。在Python字符串中,.find()方法用于寻找子字符串在主字符串中的位置,如果找到了则返回第一个匹配的索引位置,如果找不到则返回-1。

在这个例子中,each代表了movies列表中的每一个电影名称,而name代表了用户输入的电影名称。通过each.find(name)的返回值不等于-1的判断,可以确定用户输入的电影名称是否在已有的电影名称中出现过。如果找到了匹配的电影名称,就会输出该电影的详细信息;如果没有找到,则会输出"查无此片!"。

因此,这段代码中的if each.find(name) != -1的作用是用来判断输入的电影名称是否在已有的电影列表中,并进行相应的输出。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}

陈尚涵 发表于 2023-7-28 19:35:01

find是一个方法,如果字符串里有这个内容返回这个子字符串第一个的下标,否则返回-1,这个-1指的是find方法的返回值,而不是你的数组,这个代码!=-1代表着不是没找到,也就是找到了
打不过脚本,求最佳
页: [1]
查看完整版本: 作业36课后作业