Ответ 1
print('Two pair, {0}s and {1}s'.format(*cards))
Вам не хватает только звезды: D
В настоящее время я пытаюсь получить метод в Python, чтобы вернуть список нулевой, одной или двух строк, чтобы подключиться к форматированию строк, а затем передать их методу string. Мой код выглядит примерно так:
class PairEvaluator(HandEvaluator):
def returnArbitrary(self):
return ('ace', 'king')
pe = PairEvaluator()
cards = pe.returnArbitrary()
print('Two pair, {0}s and {1}s'.format(cards))
Когда я пытаюсь запустить этот код, компилятор дает индекс IndexError: tuple вне диапазона.
Как я должен структурировать возвращаемое значение, чтобы передать его в качестве аргумента для .format()
?
print('Two pair, {0}s and {1}s'.format(*cards))
Вам не хватает только звезды: D
Формат предпочтительнее, чем оператор%, начиная с его введения в Python 2.6: http://docs.python.org/2/library/stdtypes.html#str.format
Также гораздо проще просто распаковать кортеж с помощью * - или dict с помощью ** - вместо того, чтобы изменять строку формата.
Это попытка использовать "карты" как одноформатный ввод для печати, а не содержимое карт.
Попробуйте что-то вроде:
print('Two pair, %ss and %ss' % cards)