Pregunta

Actualmente, estoy tratando de conseguir un método en Python para devolver una lista de cero, uno, o dos cuerdas para conectar a un formateador de cadena, y luego pasarlas al método de cadena. Mi código es como la siguiente:

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

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

Cuando trato de ejecutar este código, el compilador da una IndexError: Índice tupla fuera de rango
. ¿Cómo debo estructurar mi valor de retorno para pasarlo como argumento para .format()?

¿Fue útil?

Solución

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

Le falta sólo el estrella: D

Otros consejos

Formato se prefiere sobre el operador%, a partir de su introducción en Python 2.6: http://docs.python.org/2/library/stdtypes.html#str.format

También es mucho más simple sólo para descomprimir la tupla con * - o un diccionario con ** -. En lugar de modificar el formato de cadena

Esto intenta utilizar "tarjetas" como entrada de formato simple para imprimir, no el contenido de las tarjetas.

Pruebe algo como:

print('Two pair, %ss and %ss' % cards)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top