Python:Dictionary在调用条目时无限循环代码

Python:Dictionary在调用条目时无限循环代码,python,dictionary,Python,Dictionary,我正在用python编写一个文本冒险游戏,我需要使用字典。我目前的设置如下: print("type A for option A, type B for option B.") def introduction(): upnext() def optionb(): print("Welcome to option B!") def optiona(): print("welcome to option A!&qu

我正在用python编写一个文本冒险游戏,我需要使用字典。我目前的设置如下:

print("type A for option A, type B for option B.")


def introduction():
  upnext()  

  
def optionb():
  print("Welcome to option B!")


def optiona():
  print("welcome to option A!")
  print("type 1 for option 1!")
  upnext() 
  
def option1():
  print("this is option 1!")
  upnext() 
  
upnext = 0
dict = {"B" : optionb, "A" : optiona,
"1" : option1 }
upnext = dict[input()]

introduction()

当我点击run时,第一行打印正确,但当我键入A转到选项A时,“optiona”中的代码无限运行。方案B很好。我应该如何使文本打印一次,然后让我转到下一组选项?

为什么在
选项1的末尾有
upnext()
upnext
optiona
,因此该函数是无限递归的。为什么不把底部的5行放在一个循环中呢?期望的行为没有很好的定义,比如说你处理完选项a,你希望“下一个”状态是什么?毫不奇怪。您的
optiona()
函数调用
upnext()
作为最后一行。所以如果
upnext
被设置为
optiona
,那么无限递归就来了!澄清一下:这是一个更大游戏的小片段。upnext()也位于option1的末尾,因为它位于每个函数的末尾,除了结束游戏的函数。我希望upnext()在每个问题被询问后更新到下一个输入,这样游戏就可以继续了。