在函数外使用全局变量返回

-3 投票
2 回答
60 浏览
提问于 2025-04-12 22:33

我的代码作业要求是:“一个返回语句要返回到main()函数中调用play game()函数之后的那条语句。”

我试着在rand变量后面加上返回语句,但收到了一个错误提示:返回语句在函数外面。我想了解正确使用返回语句的方法,以完成这个作业。

def play_game():
  return
  global rand
  rand=random.randint(1,10)
  play_game()

2 个回答

0

一个返回语句会把控制权交回给主函数(main())中调用play_game()函数之后的那条语句。

注意,这只是一个解释,不是请求。如果你想知道这个解释是什么意思,我们可以进一步分析。

首先,你需要一个 main() 函数:

def main():
    pass

其次,它说明 main() 函数应该调用 play_game() 函数:

def play_game():
    pass

def main():
    play_game()

接下来,play_game() 函数需要一个返回语句:

def play_game():
    return

def main():
    play_game()

通常你会从一个函数返回一个值,但这里没有给出足够的信息让我猜测应该返回什么,所以在这个例子中我就简单用一个 return

最后,main() 函数在调用 play_game() 函数之后需要有其他内容。我们就加一个 print() 语句。顺便说一下,我们也会在 play_game() 中加一个 print(),这样可以帮助我们理解程序是怎么工作的:

def play_game():
    print("Playing game...")
    return

def main():
    print("Starting...")
    play_game()
    print("Finishing.")

如果你运行这个简短的程序,你会看到输出为:

Starting...
Playing game...
Finishing.

正如你所看到的,return 语句使得程序在调用完 play_game() 后继续执行 main() 中的内容。

希望这对你有帮助。

附言:我不明白全局变量和这个问题有什么关系。如果你需要更多帮助,请编辑你的问题,提供更多细节,以帮助我们理解你卡在哪里。

1

“Return outside of function”这个错误可能是因为代码行没有正确缩进造成的。

看看这段写得很棒的代码:

def play_game():
    # im gonna do NOTHING!
    pass
return "hey, buddy!"

实际上,这段代码是无法编译的。尝试运行上面的代码会得到这样的结果:

    return "hey, buddy!"
    ^^^^^^^^^^^^^^^^^^^^
SyntaxError: 'return' outside function

这是因为 return "hey, buddy!" 的缩进不正确。它实际上是函数定义 play_game() 的外面。

只要修正缩进,就能解决这个错误:

def play_game():
    # im gonna do NOTHING!
    pass
    return "hey, buddy!"

撰写回答