我在 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 />")
错误在这篇文章的标题中。怎么了?
最佳答案
如果 self.turnnow
是空元组,您的代码将失败:
>>> var = ()
>>> print "%s" % (var)
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
TypeError: not enough arguments for format string
>>> print "%s" % (var,)
()
这是因为如果元组只有一个元素,Python 中带括号的表达式不会自动成为元组。 (expr)
等同于 expr
。 (expr, )
等同于以 expr
作为第一个元素的单元素元组。因此,尝试在第二个 print
语句中的 self.turnnow
之后添加一个逗号。
关于python - 格式字符串的参数不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2764520/