<p>你应该看看<a href="https://docs.python.org/3.4/reference/simple_stmts.html#the-global-statement" rel="nofollow">^{<cd1>} statement</a>来直接回答你的问题。你知道吗</p>
<pre><code>def addparams():
global param1
global param2
...
</code></pre>
<p>除此之外,我必须说您的代码还有一个奇怪的缩进和一些拼写错误:<code>param 2</code>在Python中不是一个有效的名称,<code>typeans</code>的第二项应该是<code>'param 1'</code>,并且您在循环中还有一个对<code>addparams()</code>的额外调用。最后,我不知道什么是<code>param1.update()</code>。它应该看起来像:</p>
<pre><code>param1 = ""
param2 = ""
def addparams():
global param1
global param2
typeans = ['parameter 1', 'param 1']
typeansa = ['parameter 2', 'param 2']
while True:
again = raw_input('Would you like to add another parameter? Enter y/n: ')
if again == "n":
break
if again == "y":
additionalparams = raw_input("Would you like to add any other parameters? (Parameter 1, Parameter 2): ")
if additionalparams.lower() in typeans:
param1 = raw_input('Please enter the first search criteria: ')
param1 = param1+"one"
elif additionalparams.lower() in typeansa:
param2 = raw_input('Please enter the second search criteria: ')
param2 = param2+"two"
</code></pre>
<p>但是,这不一定是最好的方法;我宁愿从函数返回参数列表:</p>
<pre><code>def addparams():
param1 = ''
param2 = ''
typeans = ['parameter 1', 'param 1']
typeansa = ['parameter 2', 'param 2']
while True:
[...] # same code as above
return param1, param2
param1, param2 = addparams()
url = 'www.website.com/'+param1+param2 # not sure that's the url you want
</code></pre>
<p>您可能想更进一步,实际返回完整的url:</p>
<pre><code>def createURL():
param1 = ''
param2 = ''
typeans = ['parameter 1', 'param 1']
typeansa = ['parameter 2', 'param 2']
while True:
again = raw_input('Would you like to add another parameter? Enter y/n: ')
if again == "n":
break
if again == "y":
additionalparams = raw_input("Would you like to add any other parameters? (Parameter 1, Parameter 2): ")
if additionalparams.lower() in typeans:
param1 = raw_input('Please enter the first search criteria: ')
param1 = param1+"one"
elif additionalparams.lower() in typeansa:
param2 = raw_input('Please enter the second search criteria: ')
param2 = param2+"two"
return 'www.website.com/'+param1+param2
url = createURL()
</code></pre>