我试图找出如何在Python中更新函数外部的空变量。这样做的原因是创建一个循环,向用户查询他们可以添加的其他参数。你知道吗
到目前为止,我看到的是:
param1 = ""
param 2 = ""
typeans = ['parameter 1', 'param 2']
typeansa = ['parameter 2', 'param 2']
def addparams():
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.update() = param1+"one"
elif additionalparams.lower() in typeansa:
param2 = raw_input('Please enter the second search criteria: ')
param2.update() = param2+"two"
addparams()
addparams()
url = www.website.com/+param1+param2
这段代码的目的是允许我查询用户是否有其他参数,然后将它们添加到url/uri。我之所以在函数外将它们留空是为了防止用户只选择使用其中一个或几个变量(在我的实际代码中,我有7个参数)。你知道吗
我理解这可能不是解决这个问题的最佳方法,如果您有任何建议,我将不胜感激。我是Python新手,欢迎任何帮助。你知道吗
谢谢!你知道吗
你应该看看^{} statement 来直接回答你的问题。你知道吗
除此之外,我必须说您的代码还有一个奇怪的缩进和一些拼写错误:
param 2
在Python中不是一个有效的名称,typeans
的第二项应该是'param 1'
,并且您在循环中还有一个对addparams()
的额外调用。最后,我不知道什么是param1.update()
。它应该看起来像:但是,这不一定是最好的方法;我宁愿从函数返回参数列表:
您可能想更进一步,实际返回完整的url:
如果没有一个更大的参照系,它听起来可能是完全相切的,但是您可以考虑简单地在一个函数中构建整个目标,并摆脱更新外部变量的整个问题。你知道吗
如果您需要单独存储每个参数,那么您可以让它返回参数的
list
,然后使用'/'.join(x for x in returned_list)
。这将有一个额外的好处,即为您提供参数列表以及最终搜索字符串,同样不必让所有这些全局变量四处浮动。你知道吗您将使用如下:
这样,您就不用设置全局变量在其他地方进行更改,而只需要处理已经准备好使用的返回值。你知道吗
相关问题 更多 >
编程相关推荐