我正在尝试编写一个简单的程序,要求输入最喜欢的彩虹色首字母(ROYGBIV)并打印给定字母的值。例如,如果用户输入为“R”,程序将打印“红色”。我试图使用词典,但我无法使用它。你能帮我纠正我的错误吗?
def rainbow():
color = {
"R", "Red"
"O", "Orange"
"Y", "Yellow"
"G", "Green"
"B", "Blue"
"I", "Indigo"
"V", "Violet"
}
userint = input("Enter first letter of fav color: ").upper()
if userint in color:
print color.get(userint,"none")
else:
print("no match")
rainbow()`
答案 0 :(得分:3)
如你所知,color
目前是Python set,如下所示:
{'BlueI', 'GreenB', 'IndigoV', 'OrangeY', 'R', 'RedO', 'Violet', 'YellowG'}
构造dictionary的语法需要冒号而不是逗号,用于键/值对:
可以通过在大括号中放置以逗号分隔的键:值对列表来创建词典,例如:
{'jack': 4098, 'sjoerd': 4127} or {4098: 'jack', 4127: 'sjoerd'}
或dict()
构造函数。
在您的情况下,这将是:
color = {
"R": "Red",
"O": "Orange",
"Y": "Yellow",
"G": "Green",
"B": "Blue",
"I": "Indigo",
"V": "Violet"
}
或者,您可以使用词典理解:
color = {c[0]: c for c in
{'Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet'}}
最后,如果你很好奇为什么“Green”和“B”(以及其他人)被一起搞笑,那是因为Python的string literal concatenation。