Domanda

Al momento, sto cercando di ottenere un metodo in Python per restituire un elenco di zero, uno, o due stringhe di collegare in un formattatore di stringa, e poi passare al metodo di stringa. Il mio codice simile a questa:

class PairEvaluator(HandEvaluator):
  def returnArbitrary(self):
    return ('ace', 'king')

pe = PairEvaluator()
cards = pe.returnArbitrary()
print('Two pair, {0}s and {1}s'.format(cards))

Quando provo a eseguire questo codice, il compilatore dà un IndexError: indice di tupla fuori portata
. Come devo strutturare il mio valore di ritorno di passare come argomento per .format()?

È stato utile?

Soluzione

print('Two pair, {0}s and {1}s'.format(*cards))

Ti manca solo la stella: D

Altri suggerimenti

definizione è preferito l'operatore%, come della sua introduzione in Python 2.6: http://docs.python.org/2/library/stdtypes.html#str.format

E 'anche molto più semplice basta decomprimere il tupla con * - o un dict con ** -., Piuttosto che modificare la stringa di formato

Questo tenta di utilizzare "carte" come ingresso unico formato per stampare, non il contenuto delle carte.

Prova qualcosa di simile:

print('Two pair, %ss and %ss' % cards)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top