#第一步将气球按颜色分组,汇总#第二部,遍历每一个字典的KEY取一个值,也就是将VALUE减一。#直到只剩下一个key的值大于0时,判断这个剩下的的key中的值是否大于1,如果大于抛出异常
dict={}
str='退出'
defaaa(a,dict):
color=a
count=1
#判断是否之前记录过这个颜色,如果记录过加一,没有记录过初始化为1
if dict.get(a,-1)==-1:
dict[a]=countelse:
dict[a]=dict[a]+1
defbbb(dict,listKey):for x inlistKey:
listLen=list(dict)print(listLen)print(listLen.__len__())if (listLen.__len__() == 1):breakdict[x]=dict[x]-1
if(dict[x]==0):
dict.pop(x)
listKey.remove(x)whileTrue:
a=input("请输入气球颜色:")if a==str:print(dict)breakaaa(a, dict)#由于字典key为不可变,所以拿出来放入list来遍历
listKey=list(dict)whileTrue:print(dict)print(listKey)if listKey.__len__()==1:breakbbb(dict,listKey)#有两种方法:(一)可以通过print直接告知实现不了,并返回解决方法#(二)利用下标越界,抛出异常#这个也可以抽成一个方法
for x indict.keys():if dict.get(x)>1:
b=dict.get(x)-1
print(b)#第一种这里可以告知,也可以通过下标越界来获取异常比如:获取第二个key时报异常
print("不能实现该种情况,多了%s的气球%d个"%(x,b))#第二种
finaList=list(dict)print(dict)print(finaList)try:
finaList.get(1)except:print("不能实现该种情况")