gridSystem
是一个字典,它的键是另一个包含操作和值的字典。我在action
函数中遇到的问题是第二个if语句。如果action
不等于字典a
中的某个操作(看,Boots。。这些名字现在是占位符),它应该只是打印出“再试一次”。但出于某种原因,无论发生什么,它的计算结果总是正确的,当我在字典中键入一些不是动作的内容时,它会给我一个错误。有人能帮忙吗?谢谢。你知道吗
a = {"Look":1, "Boots":32}
gridSystem = {"One":a}
def action():
while True:
room = raw_input("choose a room ")
if room in gridSystem.keys():
action = raw_input("What do you want to do? ")
actiontoString = ''.join([action])
if action == actiontoString:
continue_action = raw_input("You have selected to " + actiontoString)
print gridSystem[room][action]
break
elif not action == actiontoString:
print "Try again"
else:
raw_input("Not in the gridsystem. Press enter to try again")
action()
实际上,
actiontoString = ''.join([action])
将创建action
(这是一个字符串)的精确副本,并将其保存到名为actiontoString
(另一个字符串,完全相同)的引用中。总是True
。你知道吗您可能需要
if action in gridSystem[room]:
而不是当前的相等检查。用简单的else:
替换elif...:
。使用print "You have selected to", actiontoString
而不是从用户那里获取不需要的输入。你知道吗相关问题 更多 >
编程相关推荐