<p>如果您的代码执行<code>addplayers function first</code>,那么您的代码将完美地工作,因为这里声明了<code>global</code>变量。如果您想先访问其他函数,它肯定会显示您和<code>error</code>。所以最好先声明<code>global</code>变量。我是说在<code>main()</code>中,正如您的代码所描述的那样。在</p>
<p><strong>更新</strong>:如您的以下评论。在</p>
<p>正如您的第一个问题一样,<code>global</code>变量从任何子变量都能很好地工作,但是{<cd7>}必须知道变量是<code>global</code>声明的。在</p>
<p>代码中的示例:当程序运行时,只需选择<code>2</code>来执行<code>searchplayer()</code>。它将按照您的指示运行并输入输入,当访问<code>global player_info</code>时,它将显示一个错误。因为<code>python</code>还没有得到任何{<cd13>}。在</p>
<pre><code>=====WELCOME to the MAIN MENU=============
1..........Add New Players & Goals
2..........Search by Players (return average goals)
3 Update Player Goals
4 View All players
5..........Quit
=========================================
Enter choice: 2
===============SEARCH by player: Calculate average goals==================
Player name : messi
Traceback (most recent call last):
File "python", line 91, in <module>
File "python", line 11, in main
File "python", line 30, in mainmenu
File "python", line 83, in searchplayer
NameError: name 'player_info' is not defined
</code></pre>
<p>我再说一遍,<code>global</code>变量可以从任何子变量访问,但是{<cd7>}必须知道这个变量是{<cd2>}。如果<code>python</code>知道变量是<code>global</code>,那么你可以<code>operate</code>在任何地方。这就是为什么我建议您在<code>main</code>函数中将变量声明为<code>global</code>。您可以在任何地方或任何函数声明它,但是首先执行函数,这就是python知道变量是<code>global</code>的原因。我还提到了<code>your code will work perfectly</code>,并解释了原因。在</p>