【发布时间】:2018-04-18 20:53:58
【问题描述】:
我想更新一个列表以包含用户添加的新项目。有一些条件,例如代码长度必须为 7 位。如果代码已经存在,系统会通知用户。如果用户尝试使用不同的代码添加另一个“up”副本,系统将不允许这样做。这将使他们再次尝试,因为代码必须相同。最终我将包含一个视频编号,因此如果有两个“up”副本,它们将有两个不同的视频编号但相同的视频代码。
谁能告诉我为什么下面的代码不适合我?
all_movies = []
class Movie(object):
movie_list = []
def __init__(self, code, title, director):
self.code = code
self.title = title
self.director = director
Movie.movie_list.append(self)
@staticmethod
def add_movie():
mv_code = input("Code of movie: ")
movie_code = int(mv_code)
movie_title = input("Name of movie: ")
movie_director = input("Director: ")
if len(mv_code) == 7:
all_movies.append(Movie(movie_code, movie_title, movie_director))
print("movie added to database")
else:
print("the code must be 7 digits long, add movie again.")
def check_validity(movie_code, all_movies):
if movie_code in all_movies:
return True
else:
return False
if check_validity(movie_code, all_movies):
all_movies[all_movies] += Movie
print()
print("updated")
else:
all_movies[movie_code] = [movie_code, movie_title, movie_director]
def main():
movie1 = Movie(1122334, 'Up', 'Director')
movie2 = Movie(1231235, 'Taxi Driver', 'Film-maker')
这是我收到的错误消息:
all_movies[movie_code] = [movie_code, movie_title, movie_director]
IndexError: list assignment index out of range
【问题讨论】:
-
不工作怎么办?不应该发生的事情是什么?你得到什么错误?
-
@Daniel Roseman 很抱歉没有包含我收到的错误消息。这里是:all_movies[movie_code] = [movie_code, movie_title, movie_director] IndexError: list assignment index out of range
-
如果您有其他信息,请编辑您的问题。您无法格式化 cmets 中的代码/错误消息,人们通常不会阅读 cmets。