Python没有足够的格式字符串

时间:2017-01-12 15:09:17

标签: python string integer format

我尝试在谷歌上打开一个特定的页面。就像用户在搜索关键字和特定网站中输入一样(例如" 2")然后它会给出结果。

所以,搜索通常都有效。现在我尝试将特定网站放入。

class Google:
    @classmethod
    def search(self, search, sites):
        page = requests.get("http://www.google.de/search?q=%s&start=%i 0"%search %sites)
        [...]


class Menu:
    @classmethod
    def start_menu(self):
        begriff = raw_input("Bitte gib deinen Suchbegriff ein: ")
        seiten = raw_input("Wie viele Seiten willst du öffnen?: ")
        Google.search(begriff, seiten)


Menu.start_menu()

为什么它不起作用?

错误:

TypeError: not enough arguments for format string

谢谢!

2 个答案:

答案 0 :(得分:1)

字符串格式化将一个参数作为元组。你应该替换

 %search %sites

% (search, sites)

答案 1 :(得分:1)

要应用多个值,请使用元组,而不是多个%运算符:

"http://www.google.de/search?q=%s&start=%i 0" % (search, sites)

否则只会应用search,这对于字符串中的两个插槽来说是不够的(% sites将应用于结果"..." % search如果成功的话。)

接下来,您会收到sites不是数字的错误:

TypeError: %d format: a number is required, not str

因为raw_input()会返回字符串,而不是数字。使用%s插入字符串:

"http://www.google.de/search?q=%s&start=%s 0" % (search, sites)

您可能还需要在最后删除那个迷路' 0'