0
s = ('con', 'str', 'wit', 'int', 'dex', 'mp', 'p.def', 'm.def', 'p.atack', 'm.atack') 
c.execute("SELECT con, str, wit, _int, dex, mp, mdef, pdef, patack, matack FROM warrior_stat")
t = c.fetchone()[:]
for s1, t1 in s, t: print "%020s, " - ", %010s, '\n'" % (s, t) 

なぜこのエラーが発生するのですか:

Traceback (most recent call last):
  File "./test.py", line 49, in <module>
    for s1, t1 in s, t: print "%020s, " - ", %010s, '\n'" % (s, t)
ValueError: too many values to unpack

どうすれば修正できますか?

すべてのコメントをありがとう!!! 私は代わりに %(s, t) を印刷しています (s1, t1) と zip(s, t) は、この修正後に正しく機能しました

+1を評判にしないでください。でも私の評判は低いです

4

3 に答える 3

0

厳密に言うと、2 番目の問題はおそらく別の質問を開く価値があるでしょう。

print "%020s, " - ", %010s, '\n'" % (s, t) 

%に操作を適用しますが", %010s, '\n'"、これは明らかに正しくありません。

たとえそうであったとしても、別のエラーが発生します。結果の文字列を差し引こうとすると"%020s, "、同様に機能しません。

試す

print "%020s - %010s" % (s, t)
于 2013-10-22T09:43:30.907 に答える
0

2 つのリストを圧縮する必要があり、1 つの文字列にする必要があります。

for s1, t1 in zip(s, t):
    print "%020s - %010s \n" % (s, t) 
于 2013-10-22T09:25:40.333 に答える