Nicht genug Argumente für format-string
Ich habe diesen code in Python:
def send_start(self, player):
for p in self.players:
player["socket"].send_cmd('<player id="%s" name="%s" you="%s" avatar="*.png" bank="%s" />'%(self.players.index(p)+1, p['name'], int(player["pid"]==p["pid"]), 0))
player["socket"].send_cmd('<game playerid="%s" />'%(self.turnnow))
player["socket"].send_cmd("<start />")
Und der Fehler ist in der Titel von diesem post. Was ist falsch?
Sie haben zwei Zeilen, in denen eine format-string wird verwendet, und der Fehler coudé-Teleskop entweder in der einen (obwohl Sie Recht scheint auf den ersten Blick). Welcher deiner Zeilen tut das traceback zeigen?
Ich weiß nicht, die Linie Ursache dafür ist in der server-class-Fehler. Es ist selbstverständlich, loggin-system.
keine repro. w/o-traceback-es ist nicht einmal möglich zu erkennen, ob es ist diese Besondere Funktion, die den Fehler verursacht
Bitte, können Sie Kommentar einer der Linien und überprüfen Sie, ob der Fehler bleibt?
Ich weiß, ich habe ähnliche Probleme, wenn das format-argument ist eine Liste, aber es geschieht normalerweise, wenn es gibt mehrere %s.
Ich weiß nicht, die Linie Ursache dafür ist in der server-class-Fehler. Es ist selbstverständlich, loggin-system.
keine repro. w/o-traceback-es ist nicht einmal möglich zu erkennen, ob es ist diese Besondere Funktion, die den Fehler verursacht
Bitte, können Sie Kommentar einer der Linien und überprüfen Sie, ob der Fehler bleibt?
Ich weiß, ich habe ähnliche Probleme, wenn das format-argument ist eine Liste, aber es geschieht normalerweise, wenn es gibt mehrere %s.
InformationsquelleAutor Ockonal | 2010-05-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihren code schlägt fehl, wenn
self.turnnow
ist ein leeres Tupel:Dies ist, weil eine eingeklammerte Ausdruck in Python macht nicht automatisch eines Tupels wenn das Tupel hätte nur ein element.
(expr)
entsprichtexpr
.(expr, )
ist äquivalent zu einer ein-element-Tupel holdingexpr
als das erste element. Also, versuchen Sie, ein Komma nachself.turnnow
im zweitenprint
- Anweisung.InformationsquelleAutor Tamás
EDIT: Ignorieren Sie diese Antwort, es kann nicht das problem sein. Halten Sie für die Kommentare.
Versuchen, wenn das ersetzen der
mit
hilft (D. H. das hinzufügen eines nachgestellte Komma). So, wie es jetzt ist nicht ein Tupel und Klammern sind nur dekorativ. Vielleicht nicht der Fall sein, da Sie nicht bieten Linie Nummer zu erraten.
Richtig, aber wenn
self.turnnow
selbst ist ein Tupel, das es ein problem sein wird. Zu denken, obwohl, es wird eher "zusätzlichen Argumente".InformationsquelleAutor doublep