我试图编写一个程序,要求用户输入两种颜色,然后显示结果的颜色。到目前为止,这就是我所拥有的:
#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发布于 2014-02-16 17:55:12
在Python中,字符串必须用单引号或双引号('或")括起来。否则,它们将被视为变量。
在这种情况下,red既不是变量也不是字符串。因为red不是字符串,所以它在当前名称空间、父名称空间和全局命名空间中搜索red。但是变量red在其中任何一个中都找不到。因此,它放弃并抛出错误消息。
所以,所有的条件都应该是
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":
...https://stackoverflow.com/questions/21815070
复制相似问题