i从x + y = result的简单def开始,然后更改了所有内容以定义添加颜色并获得结果的定义。我添加了ifif条件。我所有的答案都是紫色,我无法弄清楚自己做错了什么。
def Add_colors(color1, color2):
result=(color1, color2)
if('blue', 'red') or ('red', 'blue'):
result="purple"
elif("red", "yellow") or ("yellow", "red"):
result="orange"
elif("yellow", "blue") or ("blue", "yellow"):
result="green"
return result
print(Add_colors("red", "blue"))
print(Add_colors("yellow", "blue"))
print(Add_colors("red", "yellow"))
答案 0 :(得分:0)
元组不是条件,非空元组的总评估值为True
,请尝试运行bool(('blue', 'red') or ('red', 'blue'))
,bool((1,2,3))
和bool(())
自己进行测试,< / p>
修复您的代码,
def Add_colors(color1, color2):
result = set((color1, color2))
if result == set(('red', 'blue')):
result="purple"
elif result == set(("red", "yellow")):
result="orange"
elif result == set(("yellow", "blue")):
result="green"
return result
print(Add_colors("red", "blue"))
print(Add_colors("yellow", "blue"))
print(Add_colors("red", "yellow"))
答案 1 :(得分:0)
因为你的逻辑就停在这里
if('blue', 'red') or ('red', 'blue'):
总是如此。所以结果是“紫色” 您可以像上面发布的@Burning Alcohol一样进行修复。
答案 2 :(得分:-1)
非空元组的值始终为True,如果不进行比较,则它们本身将被解释为条件(:-O)。如果不与参数值进行比较,则需要这样尝试:< / p>
def Add_colors(color1, color2):
result=(color1, color2)
if result in [('blue', 'red'), ('red', 'blue')]:
result="purple"
elif result in [("red", "yellow"),("yellow", "red")]:
result="orange"
elif result in [("yellow", "blue"),("blue", "yellow")]:
result="green"
return result