Форум сайта python.su
0
Вот код но его нужно сократить применив цикл фор но как не могу понять помогите
print(31 * ' ', str(self.deck1.cards[0]),' index 0') print(28 * ' ', str(self.deck1.cards[1:3]),' index 1-2') print(26 * ' ', str(self.deck1.cards[3:6]),' index 3-5') print(24 * ' ', str(self.deck1.cards[6:10]),' index 6-9') print(22 * ' ', str(self.deck1.cards[10:15]),' index 10-14') print(20 * ' ', str(self.deck1.cards[15:21]),' index 15-20') print(18 * ' ', str(self.deck1.cards[21:28]),' index 21-27')
Офлайн
857
Нужно сделать функцию, которая возвращает правильно выравненную строку, и потом уже выводить эту строку, когда она получена.
А в функции можно использовать str.format() и проверки всякие, правильная ли строка получилась.
Так что покажи, что должно получиться в результате, тогда тебе подберём тут вариант преобразований. Делать это всё просто на цикле - направление неправильное (потому ты и застрял).
Офлайн
0
…
Отредактировано zxcvbnm (Апрель 10, 2017 11:30:38)
Офлайн
0
вот такой должен быть вывод
Прикреплённый файлы:
vcdd.JPG (28,0 KБ)
Офлайн
857
Это пример того, как построить вывод
>>> def make_rows(cards, indexes): ... return [align_items(i, 30) + make_index(j) ... for i, j in zip(cards, indexes)] ... >>> def align_items(items, width): ... return ' '.join(items).center(width) ... >>> def make_index(s): ... return 'index ' + s ... >>> cards = [['j'], ['j', 'q'], ['6', '7', 'K']] >>> indexes = ['0', '1-2', '3-5'] >>> >>> for i in make_rows(cards, indexes): ... print(i) ... j index 0 j q index 1-2 6 7 K index 3-5 >>>
>>> def make_rows(cards, indexes): ... return [align_items(i, 30) + make_index(j) ... for i, j in zip(cards, indexes)] ... >>> def align_items(items, width): ... return ' '.join(items).center(width) ... >>> def make_index(lst): ... if len(lst) == 1: ... return 'index {}'.format(lst[0]) ... else: ... return 'index {}-{}'.format(lst[0], lst[1]) ... >>> cards = [['j'], ['j', 'q'], ['6', '7', 'K']] >>> indexes = [[0], [1, 2], [3, 5]] >>> >>> for i in make_rows(cards, indexes): ... print(i) ... j index 0 j q index 1-2 6 7 K index 3-5 >>>
Отредактировано py.user.next (Апрель 10, 2017 12:33:12)
Офлайн