我正在学习Python,从2.7开始并使用字典,想要在调用密钥时在我的程序中执行一个函数。在网上看了很多,但要么不相关,要么可能只是不理解。以下是我在使用我最喜欢的游戏之一时开始做的概念。
以下是我目前所处位置的更准确的表示:
myDict = {
'descript': "This is some text to be printed",
'NORTH': northOfHouse (not sure if this is correct format)
}
def westOfHouse():
print myDict['descript]
if action == ('n' or 'north'):
myDict['NORTH]() (Not sure about proper format)
else:
print "there is no path in that direction
在使用字典(例如打印字符串,修改值等)时,我已经掌握了基本的东西......只是没有得到如何使函数执行。
答案 0 :(得分:1)
作为您尝试做的简单演示,请查看以下内容:
def northOfHouse():
print "north"
action = raw_input()
myDict[action]()
def westOfHouse():
print "west"
action = raw_input()
myDict[action]()
myDict = {
"WEST": westOfHouse,
"NORTH": northOfHouse
}
action = raw_input()
myDict[action]()
首先,我定义了2个函数(northOfHouse
和westOfHouse
)。这些功能中的每一个都只是在那里打印位置并要求新的输入。然后,他们将尝试在dictonary中调用给定输入的函数。
接下来我定义字典,在我的情况下使用键"WEST"
和"NORTH"
来引用正确的功能(注意我没有调用函数)。然后可以使用您期望的相应myDict["WEST"]()
或myDict["NORTH"]()
来调用这些内容。
使用它可以输入"NORTH"
和"WEST"
并查看正在调用的相应函数,这显然可以扩展到您想要做的事情(包含适当的输入)验证并在循环的基础上执行这些指令,而不是像提供的代码一样递归,递归深度错误将在很长时间后困扰你。)
我建议的另一件事是从每个函数返回一个字典,这样当前位置决定了你可以移动到下一个的位置:
def northOfHouse():
print "You're in the NORTH of the house\nYou can go 'WEST'"
myDict = {
"WEST": westOfHouse
}
return myDict
def westOfHouse():
print "You're in the WEST of the house\nYou can go 'NORTH'"
myDict = {
"NORTH": northOfHouse
}
return myDict
currentMoves = northOfHouse()
while 1:
action = raw_input()
if(action in currentMoves):
currentMoves = currentMoves[action]()
else:
print "Invalid Input"