例如,用户将输入四种颜色(允许重复),其中orange = o, blue = b, green = g, red = r
。我将为每种颜色赋值。你知道吗
dictColor = {"o": 4, "b": 2, "g": 7, "r": 5}
colorScore = 0
for i in range(1):
color = input("Enter 4 characters of colors: ")
if "o" in color:
colorScore += dictColor["o"]
if "b" in color:
colorScore += dictColor["b"]
if "g" in color:
colorScore += dictColor["g"]
if "r" in color:
colorScore += dictColor["r"]
print("The color score is",colorScore)
如果用户要在rbgo
中输入,程序工作正常并输出值18。但是,如果用户输入了一个副本,例如rrgo
,程序输出16,这不是正确的输出。如何使我的程序能够识别这些重复项?你知道吗
每个角色只测试一次。循环输入字符串,并将每个字符用作字典的键:
或者,使用^{} function 和^{} 为任何无法识别的字符返回默认颜色分数0:
上面的函数将generator expression传递给
sum()
函数,该函数将在表达式的每个结果上循环。因此,对于字符串color
(每个字符)中的每个c
,dictColor.get(c, 0)
表达式获取给定键的值,如果缺少键,则获取0,并且sum()
将所有这些结果相加。你知道吗也许最快、更具可读性的解决方案是列表理解:
对于
color
中的每个字符,在字典中查找其分数,并将这些值相加。你知道吗相关问题 更多 >
编程相关推荐