python实现不同颜色气球隔开摆放,并且提示不能摆放的情况
这个是一位隐秘人物让我做的一道题(如标题),我也分享出来了。
首先是成品展示(暂时没有做成可视化界面的样子):
我做的是把所有的气球录入进来,然后利用基础数据结构(字典,数据等)排序等,由于我是初学,也只是做成这样;但是基本功能实现了。

代码如下:
# 第一步将气球按颜色分组,汇总
#第二部,遍历每一个字典的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实现不同颜色气球隔开摆放,并且提示不能摆放的情况的更多相关文章
- 安装python的pywin32安装不了,提示找不到py3.6-32
安装python的pywin32安装不了,提示找不到py3.6-32 首先我自己的py3.6是64位版本的,这是pywin32模块的下载地址 里面有各种版本的,首先我先下了64位的3.6版本的,结果提 ...
- 在使用python语言的open函数时,提示错误OSError: [Errno 22] Invalid argument: ‘文件路径’
如题,在使用python语言的open函数时,提示错误OSError: [Errno 22] Invalid argument: '文件路径',在查阅了大量资料后也得到了一些解决方案,但是这些解决方案 ...
- Matlab 读取excel文件提示服务器出现意外情况或无法读取问题解决
1.问题描述: 该错误通常发生在应用函数读取excel文件(后缀xls或xlsx)时. 应用xlsread函数读取提示服务器出现意外情况: 应用importdata读取时提示can‘t open fi ...
- 关于RDS备份文件使用wget下载提示403 Forbidden的情况
关于RDS备份文件使用wget下载提示403 Forbidden的情况 使用wget下载提示403错误当我们RDS物理备份文件时,例如: 原因: URL中包含有特殊字符比如&,从而造成URL被 ...
- Python入门(一):PTVS写Python程序,调试模式下input()提示文字乱码问题
前两天写了Python入门(一),里面提到,使用VS2013+PTVS进行Python开发. 就在准备为第二篇写个demo的时候,发现了一个问题,各种解决无果,有些纠结 Python中输入函数是inp ...
- Python安装wxPython和ubuntu使用apt提示不能更新
[空两格]昨天憨批室友搁我面前装b,说他会用pip安装Python包了,说是安装wxPython的时候通过换源解决了之前安装出错的问题.我一听,这事不对劲啊,是这个b直接看不懂输出了吧.果然,我让他在 ...
- python中执行py文件出错(提示File “<stdin>”,line 1,SyntaxError:invalid syntax)
解决办法: 上图中已通过输入python进入了python运行环境,出现>>>时候的不能再用python z.py 来运行hello.py文件: 应该通过exit()退出当前pyth ...
- cx_Oracle库导入失败引起crontab中python程序运行失败,并且无错误提示
今天遇到一个问题: 一个python脚本命令行运行时很正常,放到crontab中就无法工作,日志也没有记录,找了半天,终于发现问题所在. 在脚本最上方,程序如下: #!/usr/local/bin p ...
- Python中使用pip安装库时提示:远程主机强迫关闭了一个现有的连接
场景 在cmd中使用pip install moviepy时,需要安装一些依赖库,很长时间后提示: 远程主机中断了一个现有的连接. 原因是默认镜像源下载过慢,将其修改为国内或者设置安装时的源. 这里以 ...
- 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就是定位的元素 解决方案:外侧用 '' ...
随机推荐
- 安卓开发基础适配器,SimpleAdapter 快速演示
第一,主视图如下: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns: ...
- 单词本z ctrl shift alt - tr踩踏 shi流出 al不同
单词本z ctrl shift alt ctrl = control = 控制 con = com = 一起 tr- = 踩 踏 - 原始印欧语形式为 *der- contra = 相对,相反(一起踩 ...
- vue 的属性展开 props v-bind 记得带key
<el-table-column v-for="column in columns" :key="column.prop" v-bind="co ...
- C# NAudio 播放多个MP3文件
C# 使用 NAudio 来播放多个MP3文件.上代码 1.引入NAudio:using NAudio.Wave; 2.定义变量: private WaveOutEvent outputDevice; ...
- docker安装kafka和zookeeper
参考,欢迎点击原文:https://www.cnblogs.com/360minitao/p/14665845.html(主要) https://blog.csdn.net/qq_22041375/a ...
- 数据库表到java类转换工具
//该工具类可以实现:给定一个指定的数据库表名,即可自动生成对应的java实体类 package com.iamzken.utils; import java.io.BufferedWriter; i ...
- Linux高级IO
readv.writev API: #include <sys/uio.h> ssize_t readv(int fd, const struct iovec* vector, int c ...
- Linux 运维工程师面试真题-5-常考题目汇总
Linux 运维工程师面试真题-5-常考题目汇总 1.解释下什么是 GPL,GNU,自由软件? GPL:(通用公共许可证):一种授权,任何人有权取得.修改.重新发布自由软件的权力. GNU:(革奴计划 ...
- 除gRPC之外的另一个选择,IceRPC-支持QUIC
作者引言 自从19年开始接处到RPC,当时完全没有相关概念,接触到的都是http,tcp等,当时公司用的是zeroc出品的ice框架,对应rpc非常强大,跨平台,跨语言.可惜的国内并不是主流,主流是g ...
- 深度观察2024中国系统架构师大会(SACC)
今年的中国系统架构师大会(SACC)在我所在的城市广州举办,很荣幸受邀参加.这次能接触到国内最优秀的架构师,学习他们的架构思想和行业经验.对我而言非常有意义. 大会分为上下午共4场,我参加了上午的多云 ...