这个是一位隐秘人物让我做的一道题(如标题),我也分享出来了。
首先是成品展示(暂时没有做成可视化界面的样子):
我做的是把所有的气球录入进来,然后利用基础数据结构(字典,数据等)排序等,由于我是初学,也只是做成这样;但是基本功能实现了。
代码如下:
# 第一步将气球按颜色分组,汇总 #第二部,遍历每一个字典的KEY取一个值,也就是将VALUE减一。 # 直到只剩下一个key的值大于0时,判断这个剩下的的key中的值是否大于1,如果大于抛出异常 dict={} str='退出' def aaa(a,dict): color=a count=1 #判断是否之前记录过这个颜色,如果记录过加一,没有记录过初始化为1 if dict.get(a,-1)==-1: dict[a]=count else: dict[a]=dict[a]+1 def bbb(dict,listKey): for x in listKey: listLen = list(dict) print(listLen) print(listLen.__len__()) if (listLen.__len__() == 1): break dict[x]=dict[x]-1 if(dict[x]==0): dict.pop(x) listKey.remove(x) while True: a=input("请输入气球颜色:") if a==str: print(dict) break aaa(a, dict) #由于字典key为不可变,所以拿出来放入list来遍历 listKey=list(dict) while True: print(dict) print(listKey) if listKey.__len__()==1: break bbb(dict,listKey) #有两种方法:(一)可以通过print直接告知实现不了,并返回解决方法 #(二)利用下标越界,抛出异常 #这个也可以抽成一个方法 for x in dict.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("不能实现该种情况")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix