字典&列表的拓展理解
使用普通方法
menu = '''
请输入您的操作:
1. 查询所有电影,请按1;
2. 添加一个电影,请按2;
3. 根据指定序号删除一个电影,请按3;
4. 根据电影名删除一个电影,请按4;
5. 退出系统,请按其它键。
'''
movies = [
{"name": "蚁人1:黄蜂女现身", "category": "科幻", "date": "2018"},
{"name": "蚁人2:黄蜂女现身", "category": "科幻", "date": "2018"},
{"name": "蚁人3:黄蜂女现身", "category": "科幻", "date": "2018"}
]
while True:
c=input(menu)
if c=="1":
print("序号\t\t\t电影名称\t\t\t类别\t\t\t年代")
for i,movie in enumerate(movies):
# print("{0}\t\t\t{1}\t\t\t{2}\t\t\t{3}".format(i + 1, movie['name'], movie['category'], movie['date']))
print("{0}\t{1}\t\t{2}\t\t\t{3}".format(i+1,movie['name'],movie['category'],movie['date']))
elif c=="2":
name = input("请输入电影名称:")
category=input("请输入电影类别:")
date=input("请输入年代:")
movie={'name':name,'category':category,'date':date}
movies.append(movie)
elif c=="3":
print("序号\t\t\t电影名称\t\t\t类别\t\t\t年代")
for i, movie in enumerate(movies):
print("{0}\t{1}\t\t{2}\t\t\t{3}".format(i + 1, movie['name'], movie['category'], movie['date']))
number=int(input("请删除指定的序号:"))
movies.pop(number-1)
print("序号\t\t\t电影名称\t\t\t类别\t\t\t年代")
for i,movie in enumerate(movies):
# print("{0}\t\t\t{1}\t\t\t{2}\t\t\t{3}".format(i + 1, movie['name'], movie['category'], movie['date']))
print("{0}\t{1}\t\t{2}\t\t\t{3}".format(i+1,movie['name'],movie['category'],movie['date']))
elif c=="4":
name=input("请输入要删除的电影名:")
for movie in movies:
# print(movie)
if name in movie['name']:
movies.remove(movie)
print("序号\t\t\t电影名称\t\t\t类别\t\t\t年代")
for i, movie in enumerate(movies):
print("{0}\t{1}\t\t{2}\t\t\t{3}".format(i + 1, movie['name'], movie['category'], movie['date']))
#
使用函数
# 查询方法
def select():
#使用字典保存每条电影对象,将电影名称 电影类型和电影年代作为键,然后使用列表保存每个装载电影对象的字典
print("电影名称\t电影类型\t年代")
#使用for循环遍历列表,得到每个字典对象,也就是每部电影信息(可以加上序号
for i,movie in enumerate(movies):
#然后通过键获取字典中每个属性的值
print("{0}\t{1}\t{2}\t{3}".format(i+1,movie['name'],movie['category'],movie['date']))
# select()
# 添加方法
def add():
global movies
name=input("请添加电影名称:")
category=input("请添加电影类型:")
date=input("请添加年代:")
movie={'name':name,'category':category,'date':date}
movies.append(movie)
select()
# add()
#删除方法(序号)
def count_del():
select()
numbers=int(input("请输入需要删除的序号:"))
movies.pop(numbers-1)
print("当前电影有:")
select()
# count_del()
#删除电影(电影名)
def del_movie():
select()
name=input("请输入需要删除的电影名:")
i=0
while i <= len(movies)-1:
if name in movies[i]['name']:
movies.remove(movies[i])
i=i+1
# for movie in movies:
# if name in movie['name']:
# movies.remove(movie)
select()
# del_movie()
movies = [{'name': '蜘蛛侠', 'category': '科幻', 'date': '1990'},
{'name': '猎魔人', 'category': '科幻', 'date': '2000'},
{'name': '变形金刚', 'category': '科幻', 'date': '2010'}
]
menu = '''
请输入您的操作:
1. 查询所有电影,请按1;
2. 添加一个电影,请按2;
3. 根据指定序号删除一个电影,请按3;
4. 根据电影名删除一个电影,请按4;
5. 退出系统,请按其它键。
'''
while True:
c=input(menu)
if c=="1":
select()
elif c=="2":
add()
elif c=="3":
count_del()
elif c=="4":
del_movie()
else:
break
使用类
name | category | date |
---|---|---|
蜘蛛侠 | 科幻 | 1990 |
猎魔人 | 科幻 | 2000 |
变形金刚 | 科幻 | 2010 |
# 这里采用ORM模型也就是(定义类):
# 表---类
# 对象--数据行
# 属性--字段
# 对数据进行增删改查--函数
movies=[]
class Movies: #创建movies表
def __init__(self,name,category,date): #定义行字段,也就是表头属性
self.name=name
self.category=category
self.date=date
#设置方法
#1.查询方法
def select(self):
for i,movie in enumerate(movies):
print("序号\t\t\t电影名称\t\t\t电影类型\t\t\t年代")
print("{0}\t\t\t{1}\t\t\t{2}\t\t\t{3}".format(i+1,movie['name'],movie['category'],movie['date']))
def add(self):
movie={'name':self.name,'category':self.category,'date':self.date}
movies.append(movie)
def count_del(self,number):
self.number=number
movies.pop(number-1)
def movie_del(self):
i=1
while i<=len(movies)-1:
if i in movies[i][self.name]:
movies.remove(movies[i])
M=Movies
M1=Movies('蜘蛛侠','科幻','1990') #定义字段
M1.add() #插入记录
M1.select() #查询记录
M.del_count() #通过序号删除记录
M.del_movie() #通过地域名称删除记录
M2=Movies('猎魔人','科幻','2000')
M2.add()
M3=Movies('变形金刚','科幻','2010')
M3.add()
版权声明:本文为endmoon原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。