多功能python编程

多功能python编程,python,python-3.x,Python,Python 3.x,我试图写一个程序,要求用户输入两种颜色,然后显示结果的颜色。这就是我到目前为止所做的: #Define function that prompts user to enter data def ask(): color1=input('Enter name of first primary color:') color2=input('Enter name of second primary color:') mixColors(color1,color2) #Write

我试图写一个程序,要求用户输入两种颜色,然后显示结果的颜色。这就是我到目前为止所做的:

#Define function that prompts user to enter data
def ask():
    color1=input('Enter name of first primary color:')
    color2=input('Enter name of second primary color:')
    mixColors(color1,color2)
#Write function that displays the different color combinations
def mixColors(color1,color2):
    if color1==red and color2==blue:
        print('Mixing red and blue, you get purple.')
    elif color1==blue and color2==red:
        print('Mixing blue andred, you get purple.')
    elif color1==red and color2==yellow:
        print('Mixing red and yellow, you get orange.')
    elif color1==yellow and color2==red:
        print('Mixing yellow and red, you get orange.')
    elif color1==blue and color2==yellow:
        print('Mixing blue and yellow you get green.')
    elif color1==yellow and color2==blue:
        print('Mixing yellow and blue, you get green.')
    else:
        print("I don't know what you get by mixing", color1,'and',color2,'.')
ask()
运行程序时,会出现以下错误消息:

Traceback (most recent call last):
  File "/Users/Lin/Documents/Spring Semester 2013/Computer Programming/yuan_linCh0405", line 23, in <module>
    ask()
  File "/Users/Lin/Documents/Spring Semester 2013/Computer Programming/yuan_linCh0405", line 6, in ask
    mixColors(color1,color2)
  File "/Users/Lin/Documents/Spring Semester 2013/Computer Programming/yuan_linCh0405", line 9, in mixColors
    if color1==red and color2==blue:
NameError: global name 'red' is not defined
回溯(最近一次呼叫最后一次):
文件“/Users/Lin/Documents/2013春季学期/计算机编程/yuan_linCh0405”,第23行,在
询问
文件“/Users/Lin/Documents/2013春季学期/计算机编程/yuan_linCh0405”,第6行,在ask中
混合颜色(颜色1、颜色2)
文件“/Users/Lin/Documents/2013春季学期/计算机编程/yuan_linCh0405”,第9行,混合颜色
如果颜色1==红色,颜色2==蓝色:
NameError:未定义全局名称“红色”

在Python中,字符串必须用单引号或双引号(
)括起来。否则它们将被视为变量

在本例中,
red
既不是变量也不是字符串。由于
red
不是字符串,Python在当前名称空间、父名称空间和全局名称空间中搜索
red
。但在它们中都找不到变量
red
。因此,它放弃并抛出该错误消息

所以,所有的if条件都应该是

if color1=="red" and color2=="blue":
...
elif color1=="blue" and color2=="red":
...
elif color1=="red" and color2=="yellow":
...
elif color1=="yellow" and color2=="red":
...
elif color1=="blue" and color2=="yellow":
...
elif color1=="yellow" and color2=="blue":
...

在Python中,字符串必须用单引号或双引号(
)括起来。否则,它们将被视为变量

在本例中,
red
既不是变量也不是字符串。由于
red
不是字符串,因此Python在当前名称空间、父名称空间和全局名称空间中搜索
red
。但是在它们中都找不到变量
red
。因此,它放弃并抛出错误消息

所以,所有的if条件都应该是

if color1=="red" and color2=="blue":
...
elif color1=="blue" and color2=="red":
...
elif color1=="red" and color2=="yellow":
...
elif color1=="yellow" and color2=="red":
...
elif color1=="blue" and color2=="yellow":
...
elif color1=="yellow" and color2=="blue":
...

@用户3307366很酷。请考虑它是否对你有帮助。@ USER 3307366酷。请考虑它是否对你有帮助。你应该使用一个有键(红色、蓝色)、(蓝色)、“红色”、“红色”的字典,ETCIF你用FROZSENSET作为关键字,你可以减少字典中的条目数量。你应该使用一个带键的字典(红色,蓝色),(蓝色,红色),(红色,黄色),etcIf使用冻结集作为键,可以减少字典中的项目数