Restituire una tupla di argomenti per essere alimentati a String.Format ()
-
22-08-2019 - |
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()
?
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)