首页 > 解决方案 > 我正在 python 上创建一个文本游戏,并且对跨函数的变量有疑问

问题描述

我刚刚开始并想尝试使游戏取决于“剑”是否设置为真。但是当我运行它时,即使值已定义,它也不会返回任何内容。这只是问题所在的一小段代码。

def fight():
    import time
    sword = False
    user = input()
    if user == "run":
        print("pick it up or leave it?")
        user = input()
        if user == "pick it up":
            sword = True
            print("fight or flee")
            fight2()

        elif user == "leave it":
            print("you leave the sword")
            #PATH OPEN
    return sword

def fight2():
    import time
    user = input()
    if user == "fight":
        if fight():
            print("you fight the dragon")

        elif not fight():
            print("you have no sword")
            #PATH OPEN
fight()

我需要帮助if fight():,它会运行。现在,当用户键入“fight”时,它什么也不返回。谢谢!

标签: pythonpython-requests

解决方案


正如其他人所提到的,您的控制流是不完整的。应该更像这样:

def fight2():
   sword = False # default value
   user = input()
   if user == 'run':
      # do stuff
   elif user == "slide":
      # do stuff
   else:
      # bad input, what to do?
   return sword

目标是无论输入什么,该函数都应该执行返回语句。就个人而言,我喜欢只有一个 return 语句,这样可以更容易调试,但你可以有多个 return。


推荐阅读