python编写颜色混合器

红色、绿色和蓝色被称为三原色,因为它们不能通过其他的颜色混合得到。而当两种原色混合时,将得到一种新颜色,例如: 当红色和绿色混合时,将得到黄色; 当红色和蓝色混合时,将得到紫色; 当绿色和蓝色混合时,将得到青色; 要求编写一个程序,要求输入两种原色,输出它们混合得到的新颜色,如果输入的不是原色,则输出错误提示信息。

用itertools的permutations列出颜色对,再对颜色对进行判断。

from itertools import permutations
colors=['red','green','blue']
colors=permutations(colors,2)
#print(list(colors))

mixed_color={}
for item in list(colors):
    if 'red' in item and 'green' in item:
        mixed_color.update({item:'yellow'})
    if 'red' in item and 'blue' in item:
        mixed_color.update({item: 'purple'})
    if 'blue' in item and 'green' in item:
        mixed_color.update({item: 'cyan'})
print(mixed_color)

inp=tuple(input('输入两种原色,空格隔开:').split())
if inp in mixed_color:
    print(mixed_color[inp])
else:
    print('输入不是原色。')

 

op = {'红色','绿色','蓝色'}
dp = {
    '黄色': {'红色','绿色'},
    '紫色': {'红色','蓝色'},
    '青色': {'绿色','蓝色'}
}

m = input("输入以空格分隔的2个三原色:").split(" ")
if m[0] not in op or m[1] not in op:
    print("输入的不是原色")
elif m[0]==m[1]:
    print("两种原色不能一样")
else:
    for k,v in dp.items():
        if m[0] in v and m[1] in v:
            print("得到",k)

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632