Desired outputDesired outputvariant Не может найти то, что случилось с этим битом кода Python:TypeError: не все аргументы преобразуются во строке форматирования операции
print('%-*s', low, '%-*s', mid, ' %-*s', high, '%-*s'
% (8, "", (var_range//3), "", (var_range//3), "", (var_range//3), ""))
Я пытаюсь пространство переменных: low
, mid
и high
на основе ввода от пользователя (var_range//3
). (Var_range // 3) действует как настраиваемый интервал. Я хочу, чтобы выход изменялся в зависимости от диапазона пользователем
P.S. Я использую Python 3.4.4
'%' _operator_ ожидает, что строка форматирования будет содержать столько '%' _formatting спецификаторов, что и в кортеже после нее. В вашем фрагменте кода используемая строка форматирования - это только последний ''% - * s'', но кортеж, следующий за ним, содержит 8 вещей ('(8," ", (var_range // 3)," ", (var_range // 3), "", (var_range // 3), "") '). – martineau
Когда я использую только 4 вещи: (8, (var_range // 3), (var_range // 3), (var_range // 3))), та же ошибка существует –
Строка формата ''% - * s'' только ожидайте, что один элемент будет указан, потому что _that строка содержит только символ ''% '(не 8 или даже 4). Возможно, вам будет проще использовать метод ['str.format()'] (https://docs.python.org/3/library/stdtypes.html#str.format), который не использует ''% ' 'персонажей вообще. Я думаю, вы сбиваете с толку тот факт, что они используются для двух разных вещей здесь: как строка _operator_ **, так и **, что этот оператор ожидает в форматировании _string_, он передается как часть всего выражения. – martineau