Python没有足够的armugents用于格式化字符串

2024-04-26 02:20:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着在谷歌上打开一个特定的页面。比如用户键入搜索关键字和特定站点(例如“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

谢谢你


Tags: selfinputsearchrawdefgoogle页面start
2条回答

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

"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'

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

 %search %sites

% (search, sites)

相关问题 更多 >