在函数外使用全局变量返回
我的代码作业要求是:“一个返回语句要返回到main()函数中调用play game()函数之后的那条语句。”
我试着在rand变量后面加上返回语句,但收到了一个错误提示:返回语句在函数外面。我想了解正确使用返回语句的方法,以完成这个作业。
def play_game():
return
global rand
rand=random.randint(1,10)
play_game()
2 个回答
一个返回语句会把控制权交回给主函数(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()
中的内容。
希望这对你有帮助。
附言:我不明白全局变量和这个问题有什么关系。如果你需要更多帮助,请编辑你的问题,提供更多细节,以帮助我们理解你卡在哪里。
“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!"