Desired outputDesired outputvariant nicht finden Kann scheinen, was mit diesem bisschen Python Code falsch:Typeerror: nicht alle während Zeichenfolge konvertiert Argumente Formatierung Operation
print('%-*s', low, '%-*s', mid, ' %-*s', high, '%-*s'
% (8, "", (var_range//3), "", (var_range//3), "", (var_range//3), ""))
ich Raum versuche die Variablen: low
, mid
und high
basierend auf Eingaben des Benutzers (var_range//3
). Das (var_range // 3) dient als benutzerdefinierter Abstand. Ich möchte, dass der Ausgang abhängig vom Bereich durch den Benutzer variiert.
P.S. Ich verwende Python 3.4.4
Der '%' _operator_ erwartet, dass der Formatierungsstring so viele '%' _formatierende Spezifizierer_ enthält wie im folgenden Tupel. In Ihrem Code-Snippet ist die Formatierungszeichenfolge nur das letzte '% - * s'', aber das Tupel, das darauf folgt, enthält 8 Dinge (das' (8, "", (var_range // 3), "", (var_range // 3), "", (var_range // 3), "") '). – martineau
Wenn ich nur 4 Dinge verwende: (8, (var_range // 3), (var_range // 3), (var_range // 3))), existiert der gleiche Fehler –
Die Formatzeichenfolge ''% - * s'' erwarte nur, dass ein Item gegeben ist, weil _that string_ nur ein ''% '' Zeichen enthält (nicht 8 oder gar 4). Es könnte einfacher sein, die Methode ['str.format()'] (https://docs.python.org/3/library/stdtypes.html#str.format) zu verwenden, die nicht '%' verwendet. 'Charaktere überhaupt. Ich denke, Sie verwirren die Tatsache, dass sie für zwei verschiedene Dinge hier verwendet werden - als eine Zeichenfolge _operator_ ** und ** was dieser Operator in der Formatierung erwartet _string_ es als Teil des gesamten Ausdrucks übergeben. – martineau