Python TypeError: недостаточно аргументов для форматирования строки
вот вывод. Это строки utf-8, я считаю... некоторые из них могут быть нетипичными, но они сразу же терпят неудачу, прежде чем такие...
instr = "'%s', '%s', '%d', '%s', '%s', '%s', '%s'" % softname, procversion, int(percent), exe, description, company, procurl
ошибку TypeError: не достаточно аргументов для форматирования строки
его 7 для 7, хотя?
3 ответов:
отметим, что
%синтаксис для форматирования строк устаревает. Если ваша версия Python поддерживает его, вы должны написать:instr = "'{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}'".format(softname, procversion, int(percent), exe, description, company, procurl)Это также исправляет ошибку, которая у тебя есть.
вам нужно поместить аргументы формата в кортеж (добавить скобки):
instr = "'%s', '%s', '%d', '%s', '%s', '%s', '%s'" % (softname, procversion, int(percent), exe, description, company, procurl)то, что у вас сейчас есть, эквивалентно следующему:
intstr = ("'%s', '%s', '%d', '%s', '%s', '%s', '%s'" % softname), procversion, int(percent), exe, description, company, procurlпример:
>>> "%s %s" % 'hello', 'world' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: not enough arguments for format string >>> "%s %s" % ('hello', 'world') 'hello world'
Я получил ту же ошибку при использовании % в процентах в строке формата. Решение этой проблемы заключается в удвоении %%.
Comments