1.创建存放垃圾类别的字典,以垃圾类别作为键,以具体垃圾名称组成的列表作为值;
2.设计循环,可以输入垃圾名称,如果找到垃圾,则输出垃圾类别;
3.如果没有找到垃圾,则找到垃圾类别,让用户自行判断,并退出循环;
4.用户输入结束可以退出循环。
创新点:用于分类的字典可以写入读取文件,并且会针对字典中不存在的类别进行“学习”,会保存在文件中(切记一定要选择“退出”才会调用save函数保存文件),下次使用时会自动读取文件。
find_rubbish={} #存储垃圾类型
flag=0 #判断用户写入垃圾是否找到
def getinfo(): #读取文件内容
text = open("rubbish.csv",'r')
for i in text:
i=i.strip()
name,names=i.split(',')
find_rubbish[name]=names.split(" ")
text.close()
def save(find_rubbish): #写入文件保存
keys=list(find_rubbish.keys())
values=list(find_rubbish.values())
with open("rubbish.csv",'w') as fp:
for i in range(4):
fp.write(str(keys[i]))
fp.write(",")
for j in values[i]:
fp.write(j)
fp.write(" ")
fp.write("\n")
fp.close()
def show_menu():
global flag
getinfo()
while(1):
print("1.查找垃圾")
print("2.退出")
index=input("请选择标号:")
if index == '1':
name=input("请输入你要查找的垃圾名称:")
for i in find_rubbish:
for j in find_rubbish[i]:
if name==j:
print("该垃圾属于:",i)
flag=1
if flag==0:
classification=input("未找到垃圾类别,请输入垃圾类别标号:1.可回收垃圾 2.干垃圾 3.湿垃圾 4.有害垃圾")
if classification=='1':
find_rubbish['可回收垃圾'].append(name)
print("学习成功!")
if classification == '2':
find_rubbish['干垃圾'].append(name)
print("学习成功!")
if classification == '3':
find_rubbish['湿垃圾'].append(name)
print("学习成功!")
if classification == '4':
find_rubbish['有害垃圾'].append(name)
print("学习成功!")
flag=0
if index == '2':
save(find_rubbish)
print("finish!!!")
break
show_menu()