open()需要1到3个位置参数,但是给出了5个

时间:2017-09-17 14:58:15

标签: python

我正在尝试使用python搜索某事。 这是我的代码:

if request.get().strip() in inte: #that's just to understand my script
subprocess.Popen(['C:\Program Files\Internet Explorer\\iexplore.exe'])
else:
      webbrowser.open("https://www.google.it/search?q=",request.get().strip(),"&oq=",request.get().strip(),"&aqs=chrome..69i57j0j69i61j0l3.1306j0j7&sourceid=chrome&ie=UTF-8")

request =文本变量来自Entry小部件。

我不理解API之类的其他方法,所以我这样做是行不通的。 谢谢!

1 个答案:

答案 0 :(得分:0)

错误很明显:您将5个参数传递给open方法:

webbrowser.open("https://www.google.it/search?q=",request.get().strip(),"&oq=",request.get().strip(),"&aqs=chrome..69i57j0j69i61j0l3.1306j0j7&sourceid=chrome&ie=UTF-8")

您可以使用str.format或(懒惰的方式,无需太多输入)正确格式化,保留这样的参数,但只需加入tuple内置的字符串:

webbrowser.open("".join(("https://www.google.it/search?q=",request.get().strip(),"&oq=",request.get().strip(),"&aqs=chrome..69i57j0j69i61j0l3.1306j0j7&sourceid=chrome&ie=UTF-8")))

说,既然你两次使用相同的参数,str.format是首选方式:

webbrowser.open("https://www.google.it/search?q={0}&oq={0}&aqs=chrome..69i57j0j69i61j0l3.1306j0j7&sourceid=chrome&ie=UTF-8".format(request.get().strip()))