这个是一位隐秘人物让我做的一道题(如标题),我也分享出来了。

首先是成品展示(暂时没有做成可视化界面的样子):

我做的是把所有的气球录入进来,然后利用基础数据结构(字典,数据等)排序等,由于我是初学,也只是做成这样;但是基本功能实现了。

代码如下:

# 第一步将气球按颜色分组,汇总
#第二部,遍历每一个字典的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("不能实现该种情况")

python实现不同颜色气球隔开摆放,并且提示不能摆放的情况的更多相关文章

  1. 安装python的pywin32安装不了,提示找不到py3.6-32

    安装python的pywin32安装不了,提示找不到py3.6-32 首先我自己的py3.6是64位版本的,这是pywin32模块的下载地址 里面有各种版本的,首先我先下了64位的3.6版本的,结果提 ...

  2. 在使用python语言的open函数时,提示错误OSError: [Errno 22] Invalid argument: ‘文件路径’

    如题,在使用python语言的open函数时,提示错误OSError: [Errno 22] Invalid argument: '文件路径',在查阅了大量资料后也得到了一些解决方案,但是这些解决方案 ...

  3. Matlab 读取excel文件提示服务器出现意外情况或无法读取问题解决

    1.问题描述: 该错误通常发生在应用函数读取excel文件(后缀xls或xlsx)时. 应用xlsread函数读取提示服务器出现意外情况: 应用importdata读取时提示can‘t open fi ...

  4. 关于RDS备份文件使用wget下载提示403 Forbidden的情况

    关于RDS备份文件使用wget下载提示403 Forbidden的情况 使用wget下载提示403错误当我们RDS物理备份文件时,例如: 原因: URL中包含有特殊字符比如&,从而造成URL被 ...

  5. Python入门(一):PTVS写Python程序,调试模式下input()提示文字乱码问题

    前两天写了Python入门(一),里面提到,使用VS2013+PTVS进行Python开发. 就在准备为第二篇写个demo的时候,发现了一个问题,各种解决无果,有些纠结 Python中输入函数是inp ...

  6. Python安装wxPython和ubuntu使用apt提示不能更新

    [空两格]昨天憨批室友搁我面前装b,说他会用pip安装Python包了,说是安装wxPython的时候通过换源解决了之前安装出错的问题.我一听,这事不对劲啊,是这个b直接看不懂输出了吧.果然,我让他在 ...

  7. python中执行py文件出错(提示File “<stdin>”,line 1,SyntaxError:invalid syntax)

    解决办法: 上图中已通过输入python进入了python运行环境,出现>>>时候的不能再用python z.py 来运行hello.py文件: 应该通过exit()退出当前pyth ...

  8. cx_Oracle库导入失败引起crontab中python程序运行失败,并且无错误提示

    今天遇到一个问题: 一个python脚本命令行运行时很正常,放到crontab中就无法工作,日志也没有记录,找了半天,终于发现问题所在. 在脚本最上方,程序如下: #!/usr/local/bin p ...

  9. Python中使用pip安装库时提示:远程主机强迫关闭了一个现有的连接

    场景 在cmd中使用pip install moviepy时,需要安装一些依赖库,很长时间后提示: 远程主机中断了一个现有的连接. 原因是默认镜像源下载过慢,将其修改为国内或者设置安装时的源. 这里以 ...

  10. python appium使用uiselector定位时,提示 Could not parse UiSelector argument: 'XXX' is not a string

    运行自动化代码,appium返回Could not parse UiSelector argument: 'XXX' is not a string,其中的xxx就是定位的元素 解决方案:外侧用 '' ...

随机推荐

  1. VS Code Snippet Generator 插件 生成 vscode代码片段

    VS Code Snippet Generator 插件 生成 vscode代码片段

  2. Ambiq Micro-AMA3B2KK-KBR芯片可穿戴产品解决方案开发之RTC时钟

    一 RTC   RTC的英文全称是Real-Time Clock,翻译过来是实时时钟芯片.绝大多数mcu芯片都集成了这个功能.在可穿戴产品中,时间往往是非常重要的因素,怎么让时间保持一直在运行,那就是 ...

  3. python 读取串口数据常用函数及实例分析

    前记: 人生苦短,我用python,python在做一些算法验证和接口验证方面,的确是非常的好用.读取串口经常用到,这里就做个总结,给自己和周围的人做个备忘吧. 函数解析: 初始化串口数据: impo ...

  4. AWS ES ISM学习应用笔记

    Elastic Search 6以上版本推出 ILM,用于管理Index的生命周期,但AWS上的ES是基于OSS版本的ES,所以自己开发了ISM来代替ILM.项目是从logstash往ES写入数据,但 ...

  5. My97DatePicker设置默认时间

    <%@ page language="java"  pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC ...

  6. php处理序列化jQuery serializeArray数据

    介绍jquery的几个常用处理表单的函数: 1.序列化表单内容元素为字符串,常用于ajax提交. $("form").serialize() 2. serializeArray() ...

  7. 【C语言复习笔记】一些要点

    [C语言复习笔记]一些要点 按学校教材复习的,整理的是我不熟悉的地方 最近C用的好少,快忘完了就赶紧整理一下(Python真好玩) 第一章 初识C语言 存储器 内存容量的大小,取决于地址总线的数量 \ ...

  8. Oracle 视图创建自增ID

    select ROW_NUMBER() over (order by sysdate()) as id

  9. java实战:多属性排序

    多属性排序的核心点就是对Arrays.sort()和Collections.sort()方法的Comparator进行重写 Arrays.sort()的三种用法 1.1.Arrays.sort(int ...

  10. UEFI引导双系统安装archlinux后安装windows8.1,os-prober无法探测,生成grub.cfg没有windows

    1.os-prober无法探测 可能是os-prober未启用 启用os-prober: sudo vim /etc/default/grub 添加: GRUB_DISABLE_OS_PROBER=f ...