Devuelve una tupla de argumentos para ser alimentados a string.format ()
-
22-08-2019 - |
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()
?
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)